MahApps.Metro改变了ToggleSwitch的风格

时间:2013-10-09 10:51:22

标签: wpf styles mahapps.metro toggleswitch

我正在使用MahApp.Metro测试wpf应用程序。 不知怎的,我无法改变ToggleSwitch的风格。我只是想改变开关的前景或背景等简单属性。我做错了什么?

Mainwindow.xaml

<Style  x:Key="flyoutToggleSwitchStyle" TargetType="{x:Type Controls:ToggleSwitch}" BasedOn="{StaticResource {x:Type Controls:ToggleSwitch}}">
        <Setter Property="BorderBrush" Value="WhiteSmoke"/>
        <Setter Property="Background" Value="White"/>    
        <Setter Property="Foreground" Value="Yellow"/>
        <Setter Property="OnLabel" Value="Yes"/>  <!--<<<---THIS WORKS!!-->
        <Setter Property="OffLabel" Value="No"/>
    </Style>

<Controls:ToggleSwitch Style="{StaticResource flyoutToggleSwitchStyle}">
    <Controls:ToggleSwitch.Header>
           <TextBlock>
                    Test                            
           </TextBlock>
     </Controls:ToggleSwitch.Header>
 </Controls:ToggleSwitch>

2 个答案:

答案 0 :(得分:1)

问题在于,在Mahapps.Metro ToggleSwitch中,大多数属性都无法在样式中更改,因为原始模板定义中没有定义TemplateBinding或Key。
因此,只能通过创建新模板来更改样式。为此,必须更改ToggleSwitch和ToggleSwitchButton模板。

Issue on GitHub
Source of the templates

答案 1 :(得分:1)

现在有一个名为ToggleSwitch的新SwitchForeground属性允许更改ON位置的颜色(在v0.14上测试)。 例如:

<controls:ToggleSwitch SwitchForeground="{StaticResource MyGreen}" />