WPF MahApp.Metro, глобальное изменение цвета границы элементов управления пользовательского интерфейса

Я использую Mahapps.Metro в своем приложении. Я создал Словарь пользовательских акцентов [в соответствии с этим руководством] и все работает хорошо, но я не могу изменить цвет границы элементов глобально в своем приложении.

Я добавил следующий пользовательский ресурс (BorderBrush) в свой пользовательский словарь акцентных ресурсов, но он ничего не может изменить:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    ............... OTHER RESOURCES ..............

    <Color x:Key="BorderColor">#666</Color>
    <SolidColorBrush x:Key="BorderBrush" Color="{StaticResource BorderColor}"/>

</ResourceDictionary>

Например, я хочу изменить цвет границы всех кнопок...

Как я могу это сделать?


person RAM    schedule 07.05.2015    source источник


Ответы (1)


Вы должны наследовать базовые стили и вносить свои изменения.

образцы

<Color x:Key="CustomBorderColor">#666</Color>
<SolidColorBrush x:Key="CustomBorderBrush" Color="{StaticResource CustomBorderColor}"/>

<Style x:Key="CustomMetroCircleButtonStyle"
       TargetType="{x:Type Button}"
       BasedOn="{StaticResource MetroCircleButtonStyle}">
  <Setter Property="BorderBrush" Value="{DynamicResource CustomBorderBrush}" />
</Style>

<!-- or -->

<Style x:Key="CustomMetroButton"
       TargetType="{x:Type Button}"
       BasedOn="{StaticResource MetroButton}">
  <Setter Property="BorderBrush" Value="{DynamicResource CustomBorderBrush}" />
</Style>

<!-- or -->

<Style x:Key="CustomToggleButton"
       TargetType="{x:Type Button}"
       BasedOn="{StaticResource ToggleButton}">
  <Setter Property="BorderBrush" Value="{DynamicResource CustomBorderBrush}" />
</Style>

<!-- usage -->

<Style TargetType="Button" BasedOn="{DynamicResource CustomMetroCircleButtonStyle}" />
<!-- or -->
<Style TargetType="Button" BasedOn="{DynamicResource CustomMetroButton}" />
<!-- or -->
<Style TargetType="Button" BasedOn="{DynamicResource CustomToggleButton}" />

так далее...

Надеюсь, это поможет!

person punker76    schedule 08.05.2015