private FontStyle UpdateSample() { if (familyBox.Items.Count == 0) { return(FontStyle.Regular); } DisplayFont displayFont = (DisplayFont)familyBox.SelectedItem; FontStyle style = displayFont.Style; if (boldCheck.Checked && displayFont.Family.IsStyleAvailable(FontStyle.Bold)) { style |= FontStyle.Bold; } if (italicCheck.Checked && displayFont.Family.IsStyleAvailable(FontStyle.Italic)) { style |= FontStyle.Italic; } sample.Font = new System.Drawing.Font( displayFont.DisplayName, (float)sizeBox.Value, style ); sample.ForeColor = ((DisplayColor)foreColorBox.SelectedItem).Color; sample.BackColor = ((DisplayColor)backColorBox.SelectedItem).Color; return(style); }
//======================================================================================== // DoChangeFamily() //======================================================================================== private void DoChangeFamily(object sender, EventArgs e) { DisplayFont displayFont = (DisplayFont)familyBox.SelectedItem; if (displayFont.Family.IsStyleAvailable(FontStyle.Bold)) { boldCheck.Enabled = true; } else { boldCheck.Checked = false; boldCheck.Enabled = false; } if (displayFont.Family.IsStyleAvailable(FontStyle.Italic)) { italicCheck.Enabled = true; } else { italicCheck.Checked = false; italicCheck.Enabled = false; } DoChangeProperties(sender, e); }
public static void BuildFontList(Graphics g) { System.Drawing.Font font; System.Drawing.FontStyle style; DisplayFont displayFont; FontList = new ArrayList(); FontFamily[] families = FontFamily.Families; foreach (FontFamily family in families) { if (family.IsStyleAvailable(FontStyle.Regular)) { style = FontStyle.Regular; } else if (family.IsStyleAvailable(FontStyle.Bold)) { style = FontStyle.Bold; } else if (family.IsStyleAvailable(FontStyle.Italic)) { style = FontStyle.Italic; } else { style = FontStyle.Strikeout; } if (style != FontStyle.Strikeout) { font = new System.Drawing.Font(family, 12.0F, style); displayFont = new DisplayFont(family, style); displayFont.IsMonospace = (Math.Truncate(g.MeasureString("WWW", font).Width) == Math.Truncate(g.MeasureString("iii", font).Width)); FontList.Add(displayFont); } } }
//======================================================================================== // DrawFontFamilyComboItem() //======================================================================================== private void DrawFontFamilyComboItem(object sender, DrawItemEventArgs e) { if (e.Index < 0) { return; } DisplayFont displayFont = (DisplayFont)familyBox.Items[e.Index]; FontStyle style = (displayFont.IsMonospace ? FontStyle.Bold : FontStyle.Regular); System.Drawing.Font font = new System.Drawing.Font(familyBox.Font, style); e.DrawBackground(); e.Graphics.DrawString( displayFont.DisplayName, font, new SolidBrush(e.ForeColor), e.Bounds.X, e.Bounds.Top); e.DrawFocusRectangle(); }