您需要使用代码将字体添加到文本框中。wpf.LoadComponent() 方法从磁盘加载 .xaml 文件并创建 WPF 窗口,但不会在任何嵌入式资源中查找包括字体在内的任何内容。据我所知,最简单的方法是从磁盘加载字体。
首先更改字体的构建操作,使Copy to output 目录为Always。在您的示例中,字体将被复制到 bin\Debug\Fonts\ 文件夹。
现在您需要为您的文本框命名,以便您可以通过代码访问它。在您的 MainWindow.xaml 中,将x:Name属性添加到您的 TextBox。在这里,我将其命名为textbox。
<Grid>
<TextBox x:Name="textbox" Text="ABC"/>
</Grid>
现在在您的MainWindow类中,您可以为您的文本框添加一个属性,并在构造函数中编写一些代码以从磁盘加载字体并将其应用于您的文本框。完整代码如下所示。
import wpf
from System import Uri
from System.IO import Path
from System.Windows import Window
from System.Windows.Media import FontFamily
class MainWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'MainWindow.xaml')
self.addFont()
def addFont(self):
fontDirectory = Path.GetFullPath(".\\Fonts\\")
uri = Uri(fontDirectory)
fontFamily = FontFamily(uri, "./#Foo")
self.textbox.FontFamily = fontFamily
def get_textbox(self):
return self._textbox
def set_textbox(self, value):
self._textbox = value
textbox = property(get_textbox, set_textbox)
addFont () 方法简单地创建一个指向您的字体所在目录的 Uri,然后使用您的字体系列名称创建一个新的 FontFamily,最后更新 TextBox FontFamily 属性。