Я новичок в WPF Взаимодействие в VB.net Window Forms.WPF UserControl vb.net не отображает собственное семейство шрифтов
Я создаю приложение Windows Form, где я пытаюсь добавить пользовательские элементы управления с помощью ElementHost, который использует собственное семейство шрифтов.
Я создал пользовательскую кнопку с меткой внутри нее, где я применил пользовательский шрифт «Raleway» из Google Fonts, который я загрузил в «Ресурсы».
<UserControl x:Class="ButtonDark"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:prjButtonTestFont"
mc:Ignorable="d"
d:DesignHeight="50" d:DesignWidth="150">
<Button Content="Button" BorderBrush="{x:Null}" Foreground="{x:Null}" >
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Border" Background="#ff332d2f" CornerRadius="4" BorderBrush="#ff4e4749" BorderThickness="4">
<Label x:Name="Labelx" Content="Click" FontFamily="/prjButtonTestFont;component/Resources/#Raleway Thin" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#ff4e4749" FontSize="24" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="green"/>
<Setter TargetName="Labelx" Property="Foreground" Value="green"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="white"/>
<Setter TargetName="Labelx" Property="Foreground" Value="white"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
Изображение XAML дизайн предварительного просмотра показывает шрифт corretly enter image description here
Изображение формы Windows с помощью кнопки UserControl показывая неправильный шрифт enter image description here
профессионал blem заключается в том, что шрифт не будет отображаться при запуске приложения, но он будет корректно отображаться в окне предварительного просмотра дизайна xaml.
Я пробовал все следующие пути к шрифту, которые показывают правильный шрифт в окне предварительного просмотра дизайна xaml, но не при запуске приложения.
FontFamily = "./# Raleway Тонкий"
FontFamily = "/ prjButtonTestFont; компонент/Ресурсы/# Raleway Тонкий"
FontFamily = "../ Ресурсы/# Raleway Тонкий"
FontFamily = "../# Raleway Тонкий"
FontFamily = "Raleway-Thin.ttf/# Raleway Тонкий"
FontFamily = "../ Ресурсы/Raleway-Thin.ttf/# Raleway Тонкий"
FontFamily = "/ prjButtonTestFont; компонент/Ресурсы/Raleway-Thin.tff/# Raleway Тонкий"
FontFamily = "/ Ресурсы/Raleway-Thin.ttf # Raleway Тонкий"
FontFamily =» Raleway-Thin.ttf # Raleway Тонкий»
FontFamily = "Raleway-Thin.TTF # Raleway Тонкий"
FontFamily = "/ Ресурсы/Raleway-Thin.TTF # Raleway Тонкий"
Я также пробовал применить FontFamily к тем же результатам!
Я ищу любое решение, программно ли оно в коде vb или через xaml. Мне просто нужно, чтобы этот шрифт отображался после запуска приложения.
Абсолютным путем вы подразумеваете путь к компьютеру «C: /../ Resources/Fonts/# Font Name». Мне понадобится шрифт для работы на многих компьютерах, а не только тот, с которым я сейчас работаю. – C9C
Нет, вы бы использовали абсолютный путь, который я вложил в свой ответ, но заменим 'YourAssemblyName' на имя сборки и« Фактическое имя шрифта »на имя шрифта. Все остальное должно быть одинаковым. –