WPF ToggleSwitch: как добавить стиль Win 10

Я нашел этот стиль здесь и добавил его в свой Window.Resources:

<Style x:Key="Custom.ToggleSwitch.Win10"
       BasedOn="{StaticResource MahApps.Metro.Styles.ToggleSwitch.Win10}"
       TargetType="{x:Type Controls:ToggleSwitch}">
    <Setter Property="Padding" Value="0 0 10 0" />
    <Style.Triggers>
        <Trigger Property="ContentDirection" Value="RightToLeft">
            <Setter Property="Padding" Value="10 0 0 0" />
        </Trigger>
    </Style.Triggers>
</Style>

Проблема в том, что эта строка:

BasedOn="{StaticResource MahApps.Metro.Styles.ToggleSwitch.Win10}" 

получил ошибку:

Ошибка 103 Не удалось разрешить ресурс «MahApps.Metro.Styles.ToggleSwitch.Win10».

Какие-либо предложения ?


person user979033    schedule 13.03.2017    source источник
comment
Вы уверены, что у вас установлена ​​последняя версия Mahapps? Прямая ссылка к источнику в нижней части ResourceDictionary   -  person lokusking    schedule 13.03.2017
comment
Что и куда мне нужно скопировать?   -  person user979033    schedule 13.03.2017
comment
У вас даже есть ссылки на MahApps в вашем проекте?   -  person lokusking    schedule 13.03.2017
comment
Вам необходимо добавить ссылку для использования библиотеки: msdn.microsoft.com/en-us/library/7314433t(v=vs.90).aspx или используйте nuget: msdn.microsoft.com/en-us/library/7314433t(v=vs.90).aspx   -  person Fruchtzwerg    schedule 13.03.2017
comment
да, я уже упоминал в своем проекте   -  person user979033    schedule 13.03.2017
comment
Вы пробовали мое предложение или что случилось?   -  person mm8    schedule 07.04.2017


Ответы (2)


Установите MahApps с помощью NuGet (Инструменты->Диспетчер пакетов NuGet->Консоль диспетчера пакетов в Visual Studio): http://mahapps.com/guides/quick-start.html

И объедините словарь ресурсов Styles/Controls.ToggleSwitch.xaml в:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.ToggleSwitch.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <Style x:Key="Custom.ToggleSwitch.Win10"
               BasedOn="{StaticResource MahApps.Metro.Styles.ToggleSwitch.Win10}"
                TargetType="{x:Type Controls:ToggleSwitch}">
            <Setter Property="Padding" Value="0 0 10 0" />
            <Style.Triggers>
                <Trigger Property="ContentDirection" Value="RightToLeft">
                    <Setter Property="Padding" Value="10 0 0 0" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ResourceDictionary>
</Window.Resources>
person mm8    schedule 13.03.2017

Если вы хотите использовать стиль, предоставляемый MahApps, вам просто нужно изменить ToggleSwitch, чтобы добавить атрибут Style следующим образом:

<Controls:ToggleSwitch Style="{StaticResource MahApps.Metro.Styles.ToggleSwitch.Win10}" />
person AndrewK    schedule 20.02.2019