XAML - привязка к значению, определенному в ресурсах, из стиля, определенного в ресурсах

У меня есть пользовательский элемент управления с определенными ресурсами. Вот код для иллюстрации.

<UserControl.Resources>
    <SolidColorBrush x:Key="foregroundColor" Color="Red"/>

    <Style x:Key="buttonFontIconStyle" TargetType="FontIcon">
        <Setter Property="FontFamily" Value="Segoe MDL2 Assets"></Setter>
        <Setter Property="Foreground" Value="{Binding ???}"></Setter>
    </Style>

    <Style x:Key="menuItemLabelStyle" TargetType="TextBlock">
        <Setter Property="VerticalAlignment" Value="Center"></Setter>
        <Setter Property="Foreground" Value="{Binding ???}"></Setter>
    </Style>     
</UserControl.Resources>

Теперь я хочу использовать значение, определенное цветом переднего плана для buttonFontIconStyle, menuItemLabelStyle (и многих других). Можно ли каким-то образом связать значение из ресурсов в ресурсах или есть способ указать цвет один раз (предпочтительно в xaml) и использовать его в разных стилях ресурсов?

1 ответ

Решение

Вы можете использовать StaticResource:

<Style x:Key="buttonFontIconStyle" TargetType="FontIcon">
    <Setter Property="FontFamily" Value="Segoe MDL2 Assets"></Setter>
    <Setter Property="Foreground" Value="{StaticResource foregroundColor}"></Setter>
</Style>

<Style x:Key="menuItemLabelStyle" TargetType="TextBlock">
    <Setter Property="VerticalAlignment" Value="Center"></Setter>
    <Setter Property="Foreground" Value="{StaticResource foregroundColor}"></Setter>
</Style>     

Другие вопросы по тегам