Nieuws
Foto's
Artikelen
Componenten
Applicaties
Kleinkunst

FontComboBox en FontManager

Versie 1.1 (april 2007) - open source - C# & NET 2.0

Deze bibliotheek bevat een 3-tal .NET 2.0 componenten voor het beheren en tonen van lettertypes.

  • FontComboBox : Dit component is een afgeleide van de standaard ComboBox en toont een uitgebreide keuzelijst met de beschikbare Windows lettertypes en eventueel de laatst gebruikte lettertypes en de lettertypes van het voorgedefinieerde thema. Er zijn vele opties om aan te geven welke lettertypes getoond mogen worden en je kan de tekst voor de voorbeeldweergave (bv. een pangram zoals "Pa's wijze lynx bezag vroom het fikse aquaduct") instellen.

  • FontManager : Dit component bevat de lijst (list met generic FontItems) van beschikbare Windows lettertypes. Een FontItem bevat bovendien nog extra informatie zoals het PanoseFontFamilyType (via Win32 GDI32 functie GetOutlineTextMetrics). Ook de thema en laatst gebruikte lettertypes worden met dit component beheerd.

  • FontItemDrawEngine : Basisklasse voor het tekenen van de elementen (items) van de FontComboBox. 2 afgeleide componenten SimpleFontItem DrawEngine (eenvoudige weergave) en ModernFontItem DrawEngine (moderne look met XP/Vista thema ondersteuning (VisualStyleElement)) worden alvast meegeleverd maar je kan ook eigen afgeleiden maken. Een FontItemDrawEngine component dien je te koppelen aan de FontComboBox.

Alle sources en een volledig uitgewerkt demo programma worden meegeleverd.

 

 

Klasse diagram:

 

Alle componenten zijn voorzien van de nodige design-time features (attributen zoals ToolBoxBitmap, Category, Description en Localizable, afgeleide ExpandableObjectConverter klasse met Reflection, ...) Maar je kan natuurlijk ook alle properties en methods aanspreken in de code. Hieronder een voorbeeld.

C# voorbeeld:

private void InitializeFontComboManager()
{
  fontComboBox1.FontItemDrawEngine = new ScipBe.Controls.ModernFontItemDrawEngine();
  (fontComboBox1.FontItemDrawEngine as ScipBe.Controls.ModernFontItemDrawEngine)
    .PangramText = "Pa's wijze lynx bezag vroom het fikse aquaduct";
  fontComboBox1.OptionsView.ShowInstalledFonts = true;
  fontComboBox1.OptionsView.ShowRecentlyUsedFonts = true;
  fontComboBox1.OptionsView.ShowSymbolFonts = true;
  fontComboBox1.OptionsBehavior.AddSelectedFontToRecentlyUsed = true;
    
  fontManager1.RecentlyUsedFontsTitle = "Laatst gebruikte lettertypes";
  fontManager1.ThemeFontsTitle = "Thema lettertypes";
  fontManager1.InstalledFontsTitle = 'Geïnstalleerde Windows lettertypes";
    
  fontManager1.RecentlyUsedFontItems.Add("Arial");
  fontManager1.ThemeFontItems.Add("Calibri", "body");
}

private void buttonShowFont_Click(object sender, EventArgs e)
{
  if (fontComboBox1.SelectedItem != null)
    MessageBox.Show(fontComboBox1.SelectedItem.ToString() 
      + ' ' + (fontComboBox1.SelectedItem as ScipBe.Controls.FontItem)
      .TextMetrics.PanoseFamilyType.ToString());
}

Copyrights en verspreiding

  • Deze componenten zijn open source (Mozilla Public License 1.1) en mogen vrij verspreid worden.
  • De auteur geeft geen garantie op het foutloos werken van deze componenten en geeft geen support.
  • Bekijk de source code voor een historiek en meer informatie over de klasses, interfaces, properties, methods, events, ...

Downloaden

FontComboBox en FontManager componenten
  • Inhoud: Componenten en demo programma met sources (C#, .NET 2.0, Visual Studio 2005)
  • Versie: 1.1 (2007-07-04)
  • Grootte: 127.03 Kb
  • Auteur: Stefan Cruysberghs
Nu downloaden