如何在XAML for WPF中通过样式应用Hyperlink TextDecorations属性

时间:2012-01-05 11:53:25

标签: c# wpf xaml binding styles

我有这个xaml

<Button.Content>
  <Hyperlink>
    <Hyperlink.TextDecorations>
      <TextDecoration>
        <TextDecoration.Pen>
          <Pen Thickness="0" />
        </TextDecoration.Pen>
      </TextDecoration>
    </Hyperlink.TextDecorations>
    <Run Text="jumped over" />
  </Hyperlink>
</Button.Content>

我需要从样式中应用它。我的风格看起来像这样

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}">
  <Setter Property="TextDecorations" >
    <Setter.Value>
      <TextDecorations>
        <TextDecoration>
          <TextDecoration.Pen>
            <Pen Thickness="0" />
          </TextDecoration.Pen>
        </TextDecoration>
      </TextDecorations>
    </Setter.Value>
  </Setter>
</Style>

这导致我的样式文件出错,这是一个用于松散XAML的ResourceDictionary

我正在将这种风格应用于超链接

Style="{DynamicResource Button_Link}"

1 个答案:

答案 0 :(得分:3)

您无需将笔的粗细设置为零,即可使用以下样式删除下划线:

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}">            
     <Setter Property="TextDecorations" Value="None" />
</Style>

如果这只是一个简化的示例,您可以将<TextDecorations>替换为<TextDecorationsCollection>来修复现有的样式,如下所示:

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}">            
    <Setter Property="TextDecorations">
        <Setter.Value>
            <TextDecorationCollection>
                <TextDecoration>
                    <TextDecoration.Pen>
                        <Pen Thickness="0" />
                    </TextDecoration.Pen>
                </TextDecoration>
            </TextDecorationCollection>
        </Setter.Value>
    </Setter>
</Style>

此外,虽然不需要,但您的风格是静态的,因此可以像

一样应用
Style="{StaticResource Button_Link}"