将 System.Drawing.Font 与 WPF 标签一起使用

发布于 2024-07-14 17:47:21 字数 610 浏览 9 评论 0原文

我有一个 WPF Label 控件,我试图更改使用由某些旧代码提供的 System.Drawing.Font 对象的外观。 我已经能够设置大部分属性,但在三振和下划线方面遇到困难。

到目前为止我已经:

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;

如何设置字体删除线或下划线属性? 有没有更好的控件可以使用?

I have a WPF Label control which I'm trying to change the appearance of using a System.Drawing.Font object supplied by some legacy code. I have been able to set most of the properties, but am struggling with Strikeout and Underline.

So far I have:

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;

How do you set the font strikeout or underline properties? Is there a better control to use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情旳空白 2024-07-21 17:47:22

查看您已有的代码,它可能有问题。
在 MSDN 上的 Windows 窗体和 WPF 属性映射上,他们发表了评论:

WPF 中的字体大小表示为九十六英寸,而 Windows 窗体中的字体大小表示为一七十秒英寸。 对应的换算为:

Windows 窗体字体大小 = WPF 字体大小 * 72.0 / 96.0。

Looking at the code you already have, there might be a problem with it.
On the MSDN on Windows Form and WPF Property mapping they make the comment:

Font size in WPF is expressed as one ninety-sixth of an inch, and in Windows Forms as one seventy-second of an inch. The corresponding conversion is:

Windows Forms font size = WPF font size * 72.0 / 96.0.

倒带 2024-07-21 17:47:21

我会将其更改为 TextBlock 控件。 TextBlock 控件具有可供使用的 TextDecorations 属性。

<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />

或者,如果您确实喜欢,也可以将 TextBlock 粘贴在 Label 内(尽管我只是单独使用 TextBlock )。

<Label Name="label">
    <TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
</Label>

查看 TextDecorations 类。

我发现在大多数情况下 TextBlock 比 Label 更合适。 这是一篇关于差异的博客文章。 主要区别在于 Label 是 Control,而 TextBlock 只是 FrameworkElement。 标签还支持访问键。

I would change it to a TextBlock control. The TextBlock control has the TextDecorations property you can use.

<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />

Or you can stick a TextBlock inside a Label if you really like (although I'd just use the TextBlock by itself).

<Label Name="label">
    <TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
</Label>

Have a look at the TextDecorations class.

I find that TextBlocks are more suitable than Labels in most situations. Here's a blog post about the differences. The chief difference being that a Label is a Control whereas a TextBlock is just a FrameworkElement. Also a Label supports access keys.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文