Во-первых, я хочу убедиться, что вам известно об элементе управления FontDialog, и вы намеренно хотите создать собственный диалог шрифтов. Если вы не знали об этом, то, возможно, вы можете взглянуть на него и убедиться, что он не соответствует вашим потребностям, прежде чем пытаться создать свои собственные. И следующий вопрос переполнения стека показывает, как убедиться, что он заполнен всеми шрифтами устройства, а не только шрифтами TrueType.
Теперь, если вы все еще хотите создать свой собственный, то ниже приведено упрощенное решение:
Добавьте ярлык к своему диалоговому окну шрифта и установите его текст таким, какой вы хотите, чтобы пользователь видел в качестве образца шрифта. Что-то вроде AabBcC
, или это может быть случайное предложение.
Вы можете установить шрифт метки в событии SelectedIndexChanged вашего ListBox. По сути, это изменяет образец текста в соответствии с указанным шрифтом. Ниже приведен простой пример:
Обратите внимание, что вы также можете использовать текстовое поле, если хотите, чтобы ваш пользователь указал текст, который он хочет видеть другим шрифтом. Кроме того, некоторые шрифты, такие как Andy и Aharomi, выдают исключение ArgumentException, заявляя, что шрифт не поддерживает обычный стиль, поэтому было бы целесообразно перехватить этот тип исключения.
private void lstFonts_SelectedIndexChanged(object sender, EventArgs e)
{
lblSample.Font = new Font(lstFonts.SelectedItem.ToString(), 12);
}