使用C#在Win窗体中进行字体预览

时间:2011-04-22 18:38:43

标签: c# wpf winforms fonts preview

首先抱歉我的英语不好。 我想使用C#使用WinForms或WPF创建桌面应用程序。此应用必须以http://www.dafont.com/theme.php?cat=115&text=Font+Test网站的相同方式运作。用户将输入示例文本,我将在列表视图或网格中以此计算机中安装的不同字体显示此文本。你能否指导我做这件事的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

在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>

答案 1 :(得分:0)

 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];
        }