我想定製我的ToggleButtons以便檢查時,他們說「是」綠色,而不是檢查時,在紅色的說「不」。切換按鈕樣式只能在最後的切換按鈕
我已經創建了下面的風格,坐在我的樣式資源字典。
<!-- ToggleButtons -->
<Style x:Key="YesNoToggleStyle" TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="SpringGreen" />
<Setter Property="Content">
<Setter.Value>
<TextBlock Text="Yes"/>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Background" Value="Crimson" />
<Setter Property="Content">
<Setter.Value>
<TextBlock Text="No"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
This works ... sort of。如果ToggleButton是這兩個值中的最後一個,則顯示正確。所有以前具有相同值的按鈕均爲空白。高度也在縮小,但我使用觸發器上方的「高度」設置器來固定它。爲了說明這一點,正在創建一個新的記錄時的模樣:
和我點擊按鈕1,2,3和1後再次:
我本來從周圍引用的風格格:
<Grid>
...
<Grid.Resources>
<Style BasedOn="{StaticResource YesNoToggleStyle}" TargetType="{x:Type ToggleButton}" />
</Grid.Resources>
但改變這種所以每次切換按鈕引用風格單獨(<ToggleButton Style="{StaticResource YesNoToggleStyle}" ... />
)還沒有做出區別。
我看着Customizing the toggle state of a toggle button in wpf和Override ToggleButton Style其中效果是一樣的,但他們談論的是外部圖像,而我的問題都在wpf內。
我也看了看第二答案:i want to change backcolor of toggle button when toggle button ischecked and viceversa in WPF但)我只有隨VS2012混合+ SketchFlow的預覽,和b)我是用混合共小白並不能得到從Select the "Checked State"
到Reset the Background Color
在答案指示(加上我會很驚訝,如果這項任務要求混合工具)。
誰能告訴我怎樣做才能得到多的ToggleButtons正確使用相同的風格?
謝謝。這樣做的工作。幾個問題,如果我可以:是否有一個非工具欄解決方案(我喜歡按鈕效果與standrd ToggleButton)?另外,爲什麼我的嘗試不工作〜我做錯了什麼? – mcalex 2013-03-15 07:03:42
@mcalex:你的代碼看起來不錯。在我看來,問題在於'ToggleButton'的控制模板。我會研究這個模板,以及在ToolBar中定義的樣式來比較它們。請注意,如果切換按鈕將直接放置在網格中,而不是項目控件,則不會應用該樣式 - 這無疑是查看控件模板的原因。 – Dennis 2013-03-15 07:15:00