bst*_*ney 6 wpf fonts label underline
我有一个WPF标签控件,我试图改变使用由一些遗留代码提供的System.Drawing.Font对象的外观.我已经能够设置大部分属性,但我正在与Strikeout和Underline斗争.
到目前为止,我有:
System.Drawing.Font font = FontFromLegacyCode();
System.Windows.Controls.Label label = new System.Windows.Controls.Label();
label.FontFamily = new System.Windows.Media.FontFamily( font.Name );
label.FontWeight = font.Bold ? System.Windows.FontWeights.Bold : System.Windows.FontWeights.Regular;
label.FontStyle = font.Italic ? System.Windows.FontStyles.Italic : System.Windows.FontStyles.Normal;
label.FontSize = font.Size;
Run Code Online (Sandbox Code Playgroud)
如何设置字体删除线或下划线属性?有没有更好的控制使用?
我会将其更改为TextBlock控件.TextBlock控件具有您可以使用的TextDecorations属性.
<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
Run Code Online (Sandbox Code Playgroud)
或者,如果你真的喜欢,你可以将一个TextBlock粘贴在Label中(虽然我只是单独使用TextBlock).
<Label Name="label">
<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
</Label>
Run Code Online (Sandbox Code Playgroud)
看看TextDecorations类.
在大多数情况下,我发现TextBlocks比Labels更合适.这是一篇关于差异的博客文章.主要区别在于Label是Control,而TextBlock只是FrameworkElement.Label也支持访问密钥.