0

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

textBox->FontFamily = ref new Windows::UI::Xaml::Media::FontFamily("Arial");

在 x86 Simulator 上,我得到一个带有 Arial 字体的 TextBox。伟大的。

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

我检查了我的设备以确保安装了 Arial 字体。这是。在我的设备上,我启动了 WORD 并开始用 Arial 作曲,我的字符确实是 Arial(不是 Arial Narrow)字符。我应该知道一些技巧来让我的 TextBox 使用 Arial 字体吗?为了它的价值,我试着在这FontStretch处房产上胡闹,但一点效果都没有。

4

2 回答 2

0

One approach to explicitly force the font selection is to use the Text Object Model interface (http://msdn.microsoft.com/en-us/library/windows/desktop/bb774052(v=vs.85).aspx) to set the FontStretch property to Normal. By doing this the Arial font (not the Arial Narrow font) is guaranteed to always be used. I hope this helps!

In XAML / C++

ITextDocument^ doc = myControl->Document;
ITextCharacterFormat^ format = doc->GetDefaultCharacterFormat();
format->FontStretch = Windows::UI::Text::FontStretch::Normal;
doc->SetDefaultCharacterFormat(format);

Or in XAML / C#

ITextDocument doc = myControl.Document;
ITextCharacterFormat format = doc.GetDefaultCharacterFormat();
format.FontStretch = Windows.UI.Text.FontStretch.Normal;
doc.SetDefaultCharacterFormat(format);
于 2013-11-18T18:30:57.007 回答
0

在 xaml 中执行此操作。

我的意思是。

<TextBlock FontFamily="Arial"/>

或创建资源:

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

尽管直接分配给对象的属性会覆盖全局样式

于 2013-09-01T06:06:05.723 回答