【问题标题】:Using color in a style is not working in designer, but works in runtime在样式中使用颜色在设计器中不起作用,但在运行时起作用
【发布时间】:2014-04-02 21:07:15
【问题描述】:

我定义了一种颜色

<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>

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

在 Blend 中也是如此。当我单击“转到源”时,它直接跳转到 Value="{StaticResource MyBlackColor}" 行,但前景是白色的。

有什么想法,为什么?

【问题讨论】:

  • 你在使用样式文件吗??
  • 是的,它在一个单独的文件中。

标签: c# xaml windows-phone-8


【解决方案1】:

由于ForegroundBrush,请尝试将SolidColorBrush 与您的资源一起用作颜色:

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

【讨论】:

    【解决方案2】:

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

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

    然后将其指定为Brush

    <SolidColorBrush x:Key="ActualBlackColorForeground"
                     x:Name="ActualBlackColorForeground"
                     Color="{StaticResource MyBlackColor}" />
    

    然后随时随地扑通扑通。

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

    如果您想将其用作全局资源,您应该很好。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2022-01-25
      • 1970-01-01
      • 2018-09-26
      相关资源
      最近更新 更多