@postya

Как создать combobox с кастомными шрифтами в коде?

Приложение на C# + WPF
Имеется combоbox
Есть кастомные шрифты, которые установлены в систему. Например "Journal.ttf", "Alex Brush.ttf"
Нужно сделать как,чтобы в combobox отображались не все системные шрифты, а только те,что я укажу где-либо.
Надо ещё чтобы эти шрифты отрисовывались со своим стилем. То есть, чтобы выглядели в combobox так как они выглядят, если их применять к тексту, например.

Что-то типо такого, но чтобы отображались не все системные шрифты, а только выбранные мною:
5dff48bedc280121085480.jpeg

Нужен именно программный способ, так как в дальнейшем я буду сохранять значения выбранных шрифтов из copmbobox в файл settings, и применять к разным лейблам.

Как это сделать?

<ComboBox Style="{StaticResource Combobox}"
                  Name="Fonts"
                  Grid.Row="0" />
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@Aleshonne
Научные вычисления
В качестве элементов ComboBox'а могут выступать не только строки, а почти что угодно. Например, Label.
<ComboBox>
    <ComboBoxItem>
        <Label FontFamily="Font1">Font1</Label>
    </ComboBoxItem>
    <ComboBoxItem>
        <Label FontFamily="Font2">Font2</Label>
    </ComboBoxItem>
</ComboBox>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Sumor
Берёте список FontFamily и присваиваете в Source ComboBox.
<ComboBox>
  <ComboBox.ItemTemplate>
    <DataTemplate>
      <TextBlock FontFamily="{Binding}" Text="{Binding Name}" />
    <DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>
Ответ написан
Комментировать
Прописать их.
combox.Font = new Font(label1.font.name, w, label1.font.style)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы