2010-05-21 98 views
4

我試圖創建一組具有關閉或打開狀態的按鈕,而沒有檢查的複選框很多。理想情況下,我希望顏色改變爲代表兩種不同的狀態(紅色),綠色(開啓)。我試着設置一個控件模板,但這隻會改變選擇的顏色,一旦鼠標離開按鈕的附近,它就會恢復爲原來的顏色。WPF按鈕打開或關閉着色狀態

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

回答

6

首先,你所描述的是一個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> 

here is a solution to a similar problem

+0

其實我覺得他想要的不是鼠標懸停,而是狀態被按下。否則,我和你在一起:) – 2010-05-21 14:55:05

+0

ooops,你的權利。 – 2010-05-21 14:56:04

+0

Togglebutton好得多,雖然顏色仍然不起作用。 – wonea 2010-05-21 16:16:09

0

使用一些類似下面:

<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> 
0

實際上,可以使用複選框that.Allow我解釋:

WPF讓你定義控制模板,它基本上是整個控件本身。您可以創建一個完全像按鈕的複選框。

但是,正如有人所說,ToggleButton可能是你想要使用的。