.net - 为什么 FontStretch 在 WPF 中不起作用?

标签 .net wpf fonts stretch

我正在尝试在 WPF 中的 TextBlock 上设置 FontStretch 属性,但似乎不起作用。我尝试了 Expanded、Condensed 等,但文本外观没有改变。

我正在使用 Framework 4.0 的 Windows XP 上工作,并使用 Verdana 和 Arial 进行了测试。

它仅适用于 Windows 7 还是仅适用于某些特定字体?

编辑:如果它不适用于所有字体,是否有支持此功能的字体列表?或者是否可以修改像 Verdana/Arial 这样的字体来支持它?

最佳答案

要在不支持 FontStretch 的字体中获得与 FontStretch 类似的效果,您可以在 TextBlock 上使用 LayoutTransform:

<Application.Resources>
  <ScaleTransform x:Key="FontStretchCondensed" ScaleX="0.8" />
  <ScaleTransform x:Key="FontStretchExpanded" ScaleX="1.2" />
</Application.Resources>

...

<TextBlock Text="This is my text"
           LayoutTransform="{StaticResource FontStretchCondensed}" />

如果您希望 TextBlock 中的所有文本都显示为压缩形式,也可以在样式中进行设置:

<Style TargetType="TextBlock">
  <Style.Setters>
    <Setter Property="LayoutTransform" Value="{StaticResource FontStretchCondensed}" />
  </Style.Setters>
</Style>

关于.net - 为什么 FontStretch 在 WPF 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948290/

相关文章:

html - 如何在 HTML 站点上安装自定义字体

fonts - Galaxy S3 上的 Droid Sans?

.net - .NET 数组的最大大小

.net - Windows 服务在启动期间挂起

c# - 如何从 WPF TextBlock 中删除额外的填充?

c# - 有什么理由我不应该在彼此之上使用两个 ContentPresenters 来模拟弹出窗口?

c# - 将装饰器模式与抽象类一起使用

c# - 无法使用 C# 代码运行 .exe 应用程序

c# - 选中数据网格标题中的所有复选框及其在 wpf mvvm 中的绑定(bind)

java - 在 java servlet 中嵌入 Apache fop 2.1