Отключение кнопки WPF

487
31 января 2017, 19:53

Есть некоторая кнопка, которая создана от класса UserControl(то есть является не стандартной). И мне нужно, что бы когда свойство этой кнопки IsEnabled = false, то она становилась серой. (Кнопка сделана через Path)

Как я пытался решить эту проблему:

  1. Делал анимацию для кнопки. Но серый цвет проскакивает только на секунду, но при этом IsEnabled = false(по идеи кнопка должна оставаться серой);

  2. Потом решил сделать через стиль с триггерами:

<UserControl.Resources> <Style x:Key="en"> <Style.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Fill" Value="Gray"/> </Trigger> </Style.Triggers> </Style> </UserControl.Resources>

Но при таком подходе IsEnabled и Fill - "Не распознан или не доступен"

  1. Попытался прописать Style прям в Path, но все безуспешно...

Уже более близок к ответу. Сделал ресурс таким образом

<UserControl.Resources>
        <Style x:Key="en" TargetType="Path">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Fill" Value="Gray"/>
                </Trigger>
            </Style.Triggers>
        </Style>
</UserControl.Resources>

Но серый цвет все равно проскакивает на короткое время.

Answer 1

А если так:

<Style x:Key="en" TargetType="Button">
    ...

?

READ ALSO
Шаблон для текстового редактора Visual Studio 2013

Шаблон для текстового редактора Visual Studio 2013

Как в Visual Studio 2013, создать шаблон в текстовом редактореНа подобие того как делает решарпер

393
Получить строку по индексу в DataGrid

Получить строку по индексу в DataGrid

Пытаюсь сделать запись содержимого DataGrid в html-таблицу

424
Как обвести объект по контуру?

Как обвести объект по контуру?

Добрый деньУ меня есть массив с координатами контура объекта, координаты в массиве в рандомном порядке

617
Выполнение операций по расписанию

Выполнение операций по расписанию

Необходимо проводить определенные действия по расписанию, абстрактный пример:

542