MahApps.Metro изменить стиль ToggleSwitch

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

Главное окно.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>

person purbsel    schedule 09.10.2013    source источник


Ответы (2)


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

<controls:ToggleSwitch SwitchForeground="{StaticResource MyGreen}" />
person Alex Klaus    schedule 01.12.2014
comment
Примечание: это свойство устарело, следует использовать OnSwitchBrush / OffSwitchBrush - person MaLiN2223; 19.02.2017

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

Ошибка на GitHub
Источник шаблонов

person purbsel    schedule 21.10.2013