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

发布于 2024-08-29 06:09:12 字数 704 浏览 4 评论 0原文

我的 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-我们/library/system.windows.media.fontfamily.aspx

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

有解决方法的想法吗?

I have a custom font family embedded in my WPF application which I can reference by specifying a base URI and font family name.

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

However, when I copy a selection which uses this font the xaml on the clipboard resembles the following

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

When I paste into the same RichTextBox I lose the font as it falls back to the system default because -

When a FontFamily is specified as an attribute in markup, the base URI value is always implied—its value is the URI of the XAML page. http://msdn.microsoft.com/en-us/library/system.windows.media.fontfamily.aspx

and my xaml page is not located in the same directory as the custom font family.

Any ideas for a workaround?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扎心 2024-09-05 06:09:12

我最终通过更改字体系列的初始化方式来解决这个问题。

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" />

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

I ended up working around this by changing the way the font family was initialized.

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

became

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

when serialized to the clipboard (XAML)

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

and the end result - my custom font is preserved when copy/pasted within the rich text box.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文