【发布时间】:2014-06-21 04:19:58
【问题描述】:
我正在尝试将 WPF 中的文本轮廓“渲染”为富文本源。
在很多情况下,TextFormatter 类会做我想做的事,就像在这个 sn-p 中一样:
var tf = new Typeface(
new System.Windows.Media.FontFamily("Pericles"),
FontStyles.Normal,
FontWeights.Normal,
new FontStretch()
);
var brush = new SolidColorBrush(Colors.Black);
var ftext = new FormattedText(
text,
CultureInfo.CurrentCulture,
FlowDirection.LeftToRight,
tf,
72,
brush
);
var geometry = ftext.BuildGeometry(new Point());
在这里,我将一段文本转换为特定字体和大小的轮廓 (Geometry)。
FormattedText 类有一些限制。例如,无法获得FlowDocuments 的段落格式或Typography 类提供的OpenType 功能。与我可以使用 RichTextBox 或任意 ui 元素执行的操作相比,对渲染内容的控制通常要有限得多。
这就是为什么我正在寻找一种将任意 ui 元素(或至少是正确的 FlowDocuments)“渲染”为轮廓的方法,就像我在 sn-p 中处理普通文本一样。
我不是在寻找位图图像 - 我对可扩展的表示感兴趣,例如 Geometry 实例。
我怀疑这可能是因为我知道打印会将任意 xaml 转换为 可缩放 图像表示。我只是不希望它实际打印出来。
有人有什么想法吗?
【问题讨论】:
-
你有什么样的富文本源?流文件? rtf?或其他。
标签: .net wpf fonts typesetting