使用c#在Win窗体中预览字体

本文关键字:字体 窗体 Win 使用 | 更新日期: 2023-09-27 17:52:42

首先为我糟糕的英语道歉。我想用c#创建一个使用WinForms或WPF的桌面应用程序。这个应用程序必须以同样的方式工作,如http://www.dafont.com/theme.php?cat=115&text=Font+Test网站。用户将输入一个示例文本,我将显示这个文本在不同的字体安装在这台计算机在列表视图或网格。你能告诉我最好的做法是什么吗?

使用c#在Win窗体中预览字体

在WPF中,它是XAML唯一的东西:

xmlns:media="clr-namespace:System.Windows.Media;assembly=PresentationCore"
<TextBox Name="sampleTextTB" Text="Some fox jumped over some other animal, i think"/>
<ItemsControl ItemsSource="{x:Static media:Fonts.SystemFontFamilies}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ElementName=sampleTextTB, Path=Text}"
                       FontFamily="{Binding}" FontSize="20"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
 private void button1_Click(object sender, EventArgs e)
        {
            string text = textBox1.Text;
            FontFamily ff = GetRandomFont();
            Font fnt = new Font(ff, 12, FontStyle.Bold | FontStyle.Italic);
            textBox2.Font = fnt;
            textBox3.Font = fnt;
            textBox2.Text = textBox1.Text;
            textBox3.Text = textBox1.Text;
        }
        private FontFamily GetRandomFont()
        {
                FontFamily[] ff = System.Drawing.FontFamily.Families;
                Random rnd = new Random();
                int num = rnd.Next(ff.Length);
                return ff[num];
        }