Fonts 文本框->;FontFamily=ref新FontFamily(“Arial”);给我的是Arial,不是Arial

Fonts 文本框->;FontFamily=ref新FontFamily(“Arial”);给我的是Arial,不是Arial,fonts,textbox,windows-store-apps,font-family,Fonts,Textbox,Windows Store Apps,Font Family,如果我使用以下代码行为Windows::UI::Xaml::Controls::TextBox设置字体: textBox->FontFamily=ref新建Windows::UI::Xaml::Media::FontFamily(“Arial”) 在x86模拟器上,我得到了一个带有Arial字体的文本框。太好了 如果我在Surface RT设备上执行同一行代码,就会得到一个带有Arial窄字体的文本框。不太好 我检查了我的设备以确保安装了Arial字体。它是。在我的设备上,我启动了WORD并开始

如果我使用以下代码行为
Windows::UI::Xaml::Controls::TextBox
设置字体:

textBox->FontFamily=ref新建Windows::UI::Xaml::Media::FontFamily(“Arial”)

在x86模拟器上,我得到了一个带有Arial字体的文本框。太好了

如果我在Surface RT设备上执行同一行代码,就会得到一个带有Arial窄字体的文本框。不太好

我检查了我的设备以确保安装了Arial字体。它是。在我的设备上,我启动了WORD并开始用Arial进行创作,我的字符实际上是Arial(而不是Arial狭义)字符。有什么技巧可以让我的文本框使用Arial字体吗?为了它的价值,我尝试了使用
FontStretch
属性,但没有任何效果。

在xaml中执行它

我是说

<TextBlock FontFamily="Arial"/>

或者创造一个复活:

<Page.Resource>
   <Style x:Key="BasicTextStyle" TargetType="TextBlock">
       <Setter Property="FontFamily" Value="Arial"/>
   </Style>
</Page.Resource>


尽管直接指定给对象的属性会覆盖全局样式,但显式强制字体选择的一种方法是使用文本对象模型接口()将FontStretch属性设置为Normal。通过这样做,可以保证始终使用Arial字体(而不是Arial窄字体)。我希望这有帮助

以XAML/C为单位++

ITextDocument^ doc = myControl->Document;
ITextCharacterFormat^ format = doc->GetDefaultCharacterFormat();
format->FontStretch = Windows::UI::Text::FontStretch::Normal;
doc->SetDefaultCharacterFormat(format);
或者使用XAML/C#

ITextDocument doc = myControl.Document;
ITextCharacterFormat format = doc.GetDefaultCharacterFormat();
format.FontStretch = Windows.UI.Text.FontStretch.Normal;
doc.SetDefaultCharacterFormat(format);