'FontFamily' için bulunan sonuçlar - 1 Adet


C# ile Özel Font Kullanımı

Son yaptığım proje için doğan bir ihtiyacımı sizinle paylaşmak isterim. Bu projede resimler üzerine kullanıcının seçeceği font aileleri ve boyutlarda yazı yazmam gerekiyordu. Farklı olan nokta ise sistemde yüklü olmayan fontların da sadece .ttf uzantılı dosyalar verilerek kullanılabilmesinin istenmesiydi. Bu durumda sorduğum soru ise C# ile font dosyalarını okuyup birer FontFamily nesnesi haline getirmenin mümkün olup olmadığı oldu. Araştırmalarım sonucunda karşıma PrivateFontCollection sınıfı çıktı.

System.Drawing.Text isimalanı içerisinde bulunan bu sınıftan alınan bir nesne, içerisinde birden çok FontFamily nesnesini saklayabilir. Ancak koleksiyonun içerisine fontlar ancak AddFontFile metodu ile eklenebilir.

Aşağıdaki uygulamada bir Winforms projesi kullandım. Proje arayüzü sadece bir labeldan oluşmakta. Özel yüklediğmiz fontu bu labelın font değeri olarak atayarak, işlemin başarılı olup olmadığını anlayacağız. Bu amaçla form sınıfında bir LoadCustomFont metodu hazırladım. Bu metot verilen adresteki font dosyasını yükleyip, ona ait olan FontFamily nesnesini geriye döndürecektir. Font dosyası olarak da proje klasörü içerisine koyduğum Insula.ttf kullanılacaktır.

Form1 Design :

Özel Font Form Tasarım

using System.Drawing;
using System.Drawing.Text;
using System.Windows.Forms;

namespace OzelFont
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //15 em büyüklüğünde Insula kullanan font nesnesini hazırlayıp, atama
            FontFamily aile = LoadCustomFont(@"..\..\Insula.ttf");
            lbl_sonuc.Font = new Font(aile, 20);
        }

        public FontFamily LoadCustomFont(string url)
        {
            PrivateFontCollection customs = new PrivateFontCollection();
            customs.AddFontFile(url); //font dosyasını verilen adresten yükleme

            return customs.Families[0]; //yüklenen ilk fontfamily nesnesini döndürür
        }
    }
}

Yukarıdaki kodlarla oluşturulan proje çalıştırıldığında aşağıdaki ekran görüntüsünde olduğu gibi label üzerinden yazı fontunun değiştiği ve Insula haline geldiği görülecektir.

Son Ekran Görüntüsü :

Insula Label

 

Yüce ÇELİKEL

MCPD Enterprise Developer

Anahtar Kelimeler PrivateFontCollection Custom Font FontFamily
Dosyalar OzelFont.rar