【问题标题】:Textblock not retrieving new style on property changed文本块未检索属性更改的新样式
【发布时间】:2013-03-28 00:08:33
【问题描述】:

我正在使用 Silverlight 5 并尝试对视图模型进行一些样式绑定。我遇到了一个问题,我的绑定在属性更改时没有设置新值。但这只会发生在默认样式上,如果我使用一个键,那么它可以正常工作。以下是一些示例。

这行得通:

<Style x:Key="HeaderTextStyle" TargetType="TextBlock">
    <Setter Property="Foreground" Value="{Binding ForegroundBrush, Source={StaticResource Theme}}"/>
    <Setter Property="FontSize" Value="15"/>
    <Setter Property="FontWeight" Value="Bold"/>
    <Setter Property="TextWrapping" Value="Wrap"/>
    <Setter Property="Margin" Value="0,15,0,4"/>
    <Setter Property="HorizontalAlignment" Value="Left"/>
</Style>

这不起作用:

<Style TargetType="TextBlock">
    <Setter Property="Foreground" Value="{Binding ForegroundBrush, Source={StaticResource Theme}}"/>
    <Setter Property="FontSize" Value="15"/>
    <Setter Property="FontWeight" Value="Bold"/>
    <Setter Property="TextWrapping" Value="Wrap"/>
    <Setter Property="Margin" Value="0,15,0,4"/>
    <Setter Property="HorizontalAlignment" Value="Left"/>
</Style>

在第一个示例中,当调用 PropertyChanged 事件时,它将前景色重新绑定到正确的值。在第二个示例中,它不会重新绑定。

有什么想法吗?

【问题讨论】:

    标签: silverlight mvvm styles themes


    【解决方案1】:

    我记得,Style 总是用 x:Key 属性声明的,如果你想为 TargetType 设置一些默认样式,请使用 BasedOn 属性。喜欢...

    <Style x:Key="HeaderTextStyle" TargetType="TextBlock">
        <Setter Property="Foreground" Value="{Binding ForegroundBrush, Source={StaticResource Theme}}"/>
        ...
    </Style>
    
    <style TargetType="TextBlock" BasedOn="{StaticResource HeaderTextStyle}" />
    

    【讨论】:

      【解决方案2】:

      你应该这样尝试:

       <Style x:Key="HeaderTextStyle" TargetType="TextBlock">
              <Setter Property="Foreground" Value="{Binding ForegroundBrush, Source={StaticResource Theme}}"/>
              ...
          </Style>
      
          <style TargetType="TextBlock" BasedOn="{StaticResource HeaderTextStyle}" />
      

      【讨论】:

        猜你喜欢
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 2015-11-11
        • 2012-04-25
        • 2019-09-28
        • 2020-12-14
        • 1970-01-01
        • 2011-09-26
        相关资源
        最近更新 更多