在样式中使用样式中的颜色不起作用,但在运行时工作

时间:2014-04-02 21:07:15

标签: c# xaml windows-phone-8

我定义了一种颜色

<Color x:Key="MyBlackColor">#000000</Color>

我以风格

使用它
<Style x:Key="PageHeaderStyle" TargetType="TextBlock">
    <Setter Property="FontSize" Value="72" />
    <Setter Property="FontWeight" Value="Light"/>
    <Setter Property="Margin" Value="22,0,0,12"/>
    <Setter Property="Foreground" Value="{StaticResource MyBlackColor}"/>
</Style>

它在运行时工作正常(文本为黑色),但在设计器前景中为白色。

混合中相同。当我点击&#34;转到来源&#34;它直接跳转到Value =&#34; {StaticResource MyBlackColor}&#34;,但前景是白色的。

任何想法,为什么?

2 个答案:

答案 0 :(得分:2)

由于ForegroundBrush尝试使用SolidColorBrush并将您的资源用作颜色:

<Setter Property="Foreground">
   <Setter.Value>
      <SolidColorBrush Color="{StaticResource MyBlackColor}"/>
   </Setter.Value>
</Setter>

答案 1 :(得分:1)

所以你可以像你一样定义你的Color;

<Color x:Key="MyBlackColor">#FF000000</Color>

然后立即将其指定为Brush

<SolidColorBrush x:Key="ActualBlackColorForeground"
                 x:Name="ActualBlackColorForeground"
                 Color="{StaticResource MyBlackColor}" />
无论什么时候,

然后把它扔到哪里。

<Setter Property="Foreground" Value="{StaticResource ActualBlackColorForeground}"/>

如果你想将它用作全球资源,你应该很好。希望这会有所帮助。