WPF - копировать / вставлять выделенные шрифты - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть собственное семейство шрифтов, встроенное в мое приложение 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 всегда подразумевается - его значением является URI страницы XAML. http://msdn.microsoft.com/en-us/library/system.windows.media.fontfamily.aspx

и моя страница xaml не находится в том же каталоге, что и семейство пользовательских шрифтов.

Есть идеи для обхода?

1 Ответ

0 голосов
/ 15 апреля 2010

Я решил обойти это, изменив способ инициализации семейства шрифтов.

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

и конечный результат - мой собственный шрифт сохраняется при копировании / вставке в поле расширенного текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...