РЕДАКТИРОВАТЬ
Игнорировать этот ответ, он работает, только если все в одной сборке.
Я только что попробовал, и это работает для меня .Вот как я это сделал:
Файл шрифта (ttf) находится в корне приложения.Действие построения - «Ресурс» и выбрано «Не копировать».
У меня есть папка «Ресурсы», также в корне приложения.В этом у меня есть Assets1.xaml и Assets2.xaml.Действие по сборке для обоих - «Ресурс» и выбран «Не копировать».В Assets1.xaml у меня есть некоторые вещи, которые не имеют значения.В Assets2.xaml я помещаю следующее:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="DeveloperStyle"
TargetType="TextBox">
<Setter Property="FontFamily"
Value="ProggyTiny.ttf#ProggyTinyTT"></Setter>
<Setter Property="FontSize"
Value="16"></Setter>
</Style>
</ResourceDictionary>
В App.xaml я делаю это (обратите внимание, что я использую базовый класс для своего приложения, но это не должно иметь никакого значения):
<base:BaseApplication xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:GLS.Gui.Controls.Base;assembly=GLS.Gui.Controls"
x:Class="GLSTestApp02.App"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:h="clr-namespace:GLS.Gui.Helper;assembly=GLS.Gui.Helper">
<base:BaseApplication.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Assets1.xaml" />
<ResourceDictionary Source="Resources/Assets2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</base:BaseApplication.Resources>
</base:BaseApplication>
Когда я применяю стиль к TextBox в том же проекте, он отображается с использованием пользовательского шрифта.