短いバージョン: DependencyObject 内にある下線付きのものに下線を引きたいと思います。たとえば、この場合、フォントのサイズと色を設定できますが、下線を引くように設定することはできません。
<StackPanel TextElement.FontWeight="Bold" TextElement.Foreground="Red" Inline.TextDecorations="Underline">
<TextBlock Text="This ">
</TextBlock>
<TextBlock><Run Text="is "></Run><Run Text="a test"></Run></TextBlock>
</StackPanel>
では、すべてのテキストに下線を引くように 1 つの場所を指定するにはどうすればよいでしょうか?
長いバージョン: ContentPresenter のように機能するハイパーリンク コントロールを作成しています。ハイパーリンク コントロールを使用するプログラマーは、コンテンツをコントロールに配置し、DataTemplate を指定してそのコンテンツを表示できます。MouseOver では、フォントを赤に設定し、テキストに下線を引くトリガーが必要です。色を赤に変更するのは非常に簡単ですが、下線が問題になることがわかっています。
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Inline.TextDecorations" Value="Underline"></Setter>
<Setter Property="TextElement.Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ContentHyperlink}}, Path=ActiveColor}"></Setter>
</Trigger>