Кнопка включения / выключения WPF - PullRequest
4 голосов
/ 21 мая 2010

Я пытаюсь создать набор кнопок, которые имеют состояние «выключено» или «включено». В идеале я хочу, чтобы цвет менялся и представлял два разных состояния: выключен (красный), зеленый (включен). Я попытался установить шаблон элемента управления, но это только меняет цвет выделения, а затем возвращает его к исходному цвету, как только мышь покидает окрестность кнопки.

<ControlTemplate.Triggers>
   <Trigger Property="IsPressed" Value="True">
      <Setter Property="Background" TargetName="Background" Value="Green"/>
   </Trigger>
</ControlTemplate.Triggers>

Ответы [ 3 ]

6 голосов
/ 21 мая 2010

Во-первых, вы описываете ToggleButton.
Во-вторых, используйте стиль и триггеры для «IsChecked»

<Style x:Key="MyToggleStyle" TargetType="{x:Type ToggleButton}">
 <Style.Triggers>
   <Trigger Property="IsChecked" Value="True">
     <Setter Property="Background" Value="Green"/>
   </Trigger>
   <Trigger Property="IsChecked" Value="False">
     <Setter Property="Background" Value="Red"/>
   </Trigger>
 </Style.Triggers>
</Style>

вот решение похожей проблемы

0 голосов
/ 21 мая 2010

На самом деле, может использовать CheckBox для этого. Позвольте мне объяснить:

WPF позволяет определить шаблон элемента управления, который в основном представляет собой весь элемент управления. Вы можете создать флажок, который выглядит точно так же, как кнопка.

Однако, как кто-то сказал, ToggleButton - это, вероятно, то, что вы хотите использовать.

0 голосов
/ 21 мая 2010

Используйте что-то похожее на приведенное ниже:

<Button>
    ...
    <Button.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeField, Converter={StaticResource yourConverter}}" Value="yourValue">
                    <!-- set what you want here -->
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...