2013-10-09 6 views
2

Я тестирую приложения wpf с помощью MahApp.Metro. Как-то я не могу изменить стиль ToggleSwitch. Я просто хочу изменить простые свойства, например, переднего плана или фона коммутатора. Что я делаю не так?MahApps.Metro change ToggleSwitch style

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> 

ответ

1

Теперь есть новый ToggleSwitch свойство называется SwitchForeground, которая позволяет изменять цвет ON положение (проверено на V0.14). Пример:

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

Примечание: это свойство является устаревшим, следует использовать OnSwitchBrush/OffSwitchBrush – MaLiN2223

1

Проблема заключается в том, что в Mahapps.Metro ToggleSwitch большинство свойств не может быть изменен в стиле, потому что нет TemplateBinding или ключа, определенного в исходном определении шаблона.
Таким образом, стиль можно изменить только путем создания нового шаблона. Для этого необходимо изменить шаблоны ToggleSwitch и ToggleSwitchButton.

Issue on GitHub
Source of the templates