gpt4 book ai didi

.net - VB.NET:如何在运行时编写字体并将其应用到标签?

转载 作者:行者123 更新时间:2023-12-02 15:42:06 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2008 在 Visual Basic .NET 中开发 Windows 窗体应用程序。

我正在尝试根据用户首选项在运行时组合字体(家族名称、字体大小和样式),并将它们应用到标签。

为了更简单的用户界面以及需要使用相同字体的多台计算机之间的兼容性,我将使用InstalledFontCollection,但是一组按钮,用于设置一些选定的字体,我知道这些字体存在于所有机器中(像 Verdana 这样的字体)。

所以,我必须在将创建字体的模块上创建一个公共(public)子,但我不知道如何编码。还有四个复选框用于设置样式:粗体、斜体、下划线和删除线。

我应该如何编码? SomeLabel.Font.Bold 属性是只读的,将“Times New Roman”等字符串转换为 FontFamily 类型时似乎存在问题。 (它只是说它做不到)

点赞

Dim NewFontFamily As FontFamily = "Times New Roman"

提前致谢。

最佳答案

这应该可以解决您的字体问题:

Label1.Font = New Drawing.Font("Times New Roman", _
16, _
FontStyle.Bold or FontStyle.Italic)

MSDN documentation on Font property here

创建此字体的函数的可能实现可能如下所示:

Public Function CreateFont(ByVal fontName As String, _
ByVal fontSize As Integer, _
ByVal isBold As Boolean, _
ByVal isItalic As Boolean, _
ByVal isStrikeout As Boolean) As Drawing.Font

Dim styles As FontStyle = FontStyle.Regular

If (isBold) Then
styles = styles Or FontStyle.Bold
End If

If (isItalic) Then
styles = styles Or FontStyle.Italic
End If

If (isStrikeout) Then
styles = styles Or FontStyle.Strikeout
End If

Dim newFont As New Drawing.Font(fontName, fontSize, styles)
Return newFont

End Function

字体是不可变的,这意味着它们一旦创建就无法更新。因此,您已经注意到了所有只读属性。

关于.net - VB.NET:如何在运行时编写字体并将其应用到标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1350993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com