2011-08-15 43 views
0

我开发了一个C#应用程序 - 我想现在添加一个菜单,并有一个选项,用户可以选择他们想要哪种字体,然后显示哪些标签等。在我的菜单栏上,我添加了一个字体,然后在其方法中添加以下内容。我曾在网上阅读过,这会起作用。不过,我正在获取FontSelector/Fonts在当前上下文中不存在。是否有一个使用指令,我必须添加为了得到这个工作,并有人知道它是什么?C# - 从菜单中选择系统字体

private void setFontToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     FontSelector.ItemsSource = Fonts.SystemFontFamilies; 
    } 

回答

6

为什么不使用System.Windows.Forms.FontDialog?为您节省了大量的工作......

http://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog.aspx

这是一个对话的形式,你可以打开,使用户可以设置字体系列,大小,颜色等。例如:

FontDialog fontDialog1 = new FontDialog(); 
fontDialog1.Font = textBox1.Font; 
fontDialog1.Color = textBox1.ForeColor; 

if(fontDialog1.ShowDialog() != DialogResult.Cancel) 
{ 
    textBox1.Font = fontDialog1.Font ; 
    textBox1.ForeColor = fontDialog1.Color; 
} 
+0

不确定您的意思是Hinek - 您能否再详述一下?谢谢 –

+0

@CollyMcK:[This](http://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog.aspx),在所有其他Windows应用程序中使用相同的通用对话框来选择字体。但它*是一个单独的对话框,因此它不会在应用程序中的菜单或组合框中显示任何内容。 –

+0

当然,我编辑了答案... – Hinek

0

您可以在组合框中显示此列表,例如:

FontFamily[] fontList = new System.Drawing.Text.InstalledFontCollection().Families; 
+0

嗨安德斯 - 我其实不想添加其他任何东西到我的表单 - 我想调出这个列表和用户选择何时设置字体被点击在菜单栏 –

+0

要么显示某种形式的对话框/控件来选择字体,在这种情况下使用FontDialog。否则,您不想显示某些内容来选择字体,并且在这种情况下将字体列表作为菜单迭代毫秒或项目在组合或任何。否则我不明白“我想提出这个清单”。解释“提起” –