WPF - 使用自定义字体系列进行复制/粘贴选择

时间:2010-04-14 18:02:00

标签: wpf xaml fonts

我的WPF应用程序中嵌入了自定义字体系列,我可以通过指定基本URI和字体系列名称来引用它。

new FontFamily(new Uri("pack://application:,,,/Fonts/"), "./#My Custom Font Family");

但是,当我复制使用此字体的选项时,剪贴板上的xaml类似于以下内容

<Run Text="Foo" FontFamily="./#My Custom Font Family" />

当我粘贴到同一个RichTextBox时,我会丢失字体,因为它会回退到系统默认值,因为 -

  

当在标记中将FontFamily指定为属性时,始终隐含基本URI值 - 其值是XAML页面的URI。 http://msdn.microsoft.com/en-us/library/system.windows.media.fontfamily.aspx

我的xaml页面与自定义字体系列不在同一目录中。

有关解决方法的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我最后通过改变字体系列的初始化方式解决了这个问题。

new FontFamily(new Uri("pack://application:,,,/Fonts/"), "./#My Custom Font Family");

成了

new FontFamily(new Uri("pack://application:,,,"), "MyAssemblyName;Component/Fonts/#My Custom Font Family");

序列化到剪贴板(XAML)时

<Run Text="Foo" FontFamily="Component/Fonts/#My Custom Font Family" />

和最终结果 - 在富文本框中复制/粘贴时保留我的自定义字体。