システムにインストールされているすべてのtruetypeフォントを表示し、すべてのフォントがそれが表すフォントでフォーマットされている、#4.5 Windowsフォームアプリケーション(注:WPFではなく)でコンボボックスを作成したい時間、「Arial」などの形式で)。C#でフォントコンボボックスを作成するには?
これを行う方法?
システムにインストールされているすべてのtruetypeフォントを表示し、すべてのフォントがそれが表すフォントでフォーマットされている、#4.5 Windowsフォームアプリケーション(注:WPFではなく)でコンボボックスを作成したい時間、「Arial」などの形式で)。C#でフォントコンボボックスを作成するには?
これを行う方法?
はComboBox.DrawItem
のEventHandlerを使用してください。 ComboBox.DrawItem
を使用するための
public YourForm()
{
InitializeComponent();
ComboBoxFonts.DrawItem += ComboBoxFonts_DrawItem;
ComboBoxFonts.DataSource = System.Drawing.FontFamily.Families.ToList();
}
private void ComboBoxFonts_DrawItem(object sender, DrawItemEventArgs e)
{
var comboBox = (ComboBox)sender;
var fontFamily = (FontFamily)comboBox.Items[e.Index];
var font = new Font(fontFamily, comboBox.Font.SizeInPoints);
e.DrawBackground();
e.Graphics.DrawString(font.Name, font, Brushes.Black, e.Bounds.X, e.Bounds.Y);
}
あなたはクライアントシステム上でComboBox.DrawMode = DrawMode.OwnerDrawFixed
あなたはSystem.Drawing.FontFamily.Families
、あなたが前にここ数年のプロジェクト公表カップル従うことによって、これを達成することができ、この
List<string> fonts = new List<string>();
foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
fonts.Add(font.Name);
}
.................. your logic
はい、これを行うには、フォントの名前だけを使用します。 The'llはこの@EpicKip –
あなたはしかし、フォントを見つけるために名前を使用することができます@AleTheFe ...唯一の問題は、通常のコンボボックスは、(私の知る限り)各項目のフォントを取らないということです – EpicKip
をあるフォーマットできませんまさに私がこれまで考えていたものです: '( –
のようなもの、https://www.codeproject.com/Articles/318174/Creating-a-WYSIWYG-font-ComboBox-using-Csharp
を使用することができますしかし、その代わりにそれを行うのは、Narek従うことができますNoreyanの手順とそれ以上を追加するには、コンボボックスからフォントファミリを選択した後にテキストフォントを変更するリッチテキストボックスを使用します。
ここではいくつかのコードスニペット、
using System.Drawing.Text;
void mainformload(object sender, EventArgs s)
{
InstalledFontCollection inf=new InstalledFontCollection();
foreach(Font family font in inf.Families)
combobox.Items.Add(font.Name); //filling the font name
//get the font name of the rich text box text
combobox.Text=this.richtextbox.Font.Name.ToString();
}
void comboboxselectionchanged(object sender, EventArgs e)
{
richtextbox.Font=new Font(combobox.text, richtextbox.Font.Size);
}
を設定する必要がありますか? –
はい、クライアントシステム –
に私はあなたがユーザのファイル –