2011-04-22 60 views
0

首先爲我可憐的英語感到遺憾。 我想創建一個使用WinForms或WPF使用C#的桌面應用程序。這個應用程序必須像http://www.dafont.com/theme.php?cat=115&text=Font+Test網站一樣工作。用戶將輸入一個示例文本,我將以列表視圖或網格的形式在此計算機中安裝的不同字體中顯示此文本。你能指導我做這件事的最佳做法嗎?使用C的Win窗體中的字體預覽#

+1

你至少需要交一個合理的嘗試的解決這個自己。一個簡單的解決方案就是循環遍歷機器上已安裝的字體,並通過添加一個條目到列表視圖中,有很多方法可以做到這一點。 – 2011-04-22 18:48:03

回答

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

這是窗口形式................希望這會幫助你.......... – TechGiant 2011-04-22 19:05:40