如果我使用以下代码行设置Windows::UI::Xaml::Controls::TextBox
的字体:
textBox->FontFamily = ref new Windows::UI::Xaml::Media::FontFamily("Arial");
,我得到一个带有Arial字体的TextBox。大。
如果我在Surface RT设备上执行相同的代码行,我会得到一个带有Arial Narrow字体的TextBox。不太好。
我检查了我的设备以确保安装了Arial字体。它是。在我的设备上,我启动了WORD并开始在Arial中创作,我的角色确实是Arial(而不是Arial Narrow)角色。是否有一些技巧我应该知道让我的TextBox使用Arial字体?我试图用FontStretch
财产愚弄它的价值,但它根本没有效果。
答案 0 :(得分:0)
在xaml中完成。
我的意思是。<TextBlock FontFamily="Arial"/>
或创建一个resurce:
<Page.Resource>
<Style x:Key="BasicTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Arial"/>
</Style>
</Page.Resource>
虽然直接分配给对象的属性会覆盖全局样式
答案 1 :(得分:0)
显式强制字体选择的一种方法是使用Text Object Model接口(http://msdn.microsoft.com/en-us/library/windows/desktop/bb774052(v=vs.85).aspx)将FontStretch属性设置为Normal。通过这样做,保证始终使用Arial字体(不是Arial Narrow字体)。我希望这有帮助!
在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);