2011-09-02 5 views
5

Uygulama yazı tipimi değiştirirken aşağıdaki özel durum durumlarını alıyorum, çünkü uygulamamın bir bölümünde grev kullanıyorum ve bazı yazı tipleri desteklemiyor:Bir yazı tipinin belirli bir stili destekleyip desteklemediğini nasıl kontrol edebilirim

enter image description here

Uygulama yazı tipimi yazı tipi iletişim kutusunu kullanarak değiştiriyorum. seçeneğine ihtiyacım var, seçili yazı tipinin uygulamayı uyguladıktan sonra strikeout stilini destekleyip desteklemediğini kontrol etmem gerekiyor.

Bunu yapmanın önerilen yolu nedir? Tarzıyla bir yazı tipi oluşturabildiğimi ve istisnayı yakalayabileceğimi biliyorum, ama bunu yapmanın daha şık bir yolu var mı?

Şimdiden teşekkürler.


DÜZENLEME: Kullanıcı bir yazı değil, necesary taarruz seçer. O anda, yazı tipinin strikeoutu destekleyip desteklemediğini kontrol etmeliyim, çünkü uygulamamın bir bölümünde bir strikeout yazı tipi oluşturuyorum. Yazı tipi strikeout stilini desteklemiyorsa, kullanıcının bu yazı tipini seçmesine izin verilmez. Nihayet

InstalledFontCollection ifc = new InstalledFontCollection(); 
for (int i = 0; i < ifc.Families.Length; i++) 
    { 
     if (ifc.Families[i].IsStyleAvailable(FontStyle.StrikeOut)) 
     { 
      //add particular font with this family to your "font selector" 
     } 
    } 
+0

istisna i: aşağıdaki kullanılan Elindeki her şey. Endişelenecek bir şey yok, olağanüstü. –

cevap

0

: Güncellendi

//Gets a value that indicates whether this Font specifies a horizontal line through the font. 
public bool Strikeout { get; } 
0

, o zaman Font.Strikeout özelliğini kullanabilirsiniz

private bool SupportStrikeout(Font font) 
    { 
     try 
     { 
      using (Font strikeout = new Font(font, FontStyle.Strikeout)) 
      { 
       return true; 
      } 
     } 
     catch (ArgumentException) 
     { 
      return false; 
     } 
    } 
+0

Maalesef, sorumu doğru bir şekilde açıklamadım. Sen seçme Kullanıcı için Yazı nesnesi oluşturmak ve özellik değerini alabilirsiniz Düzenlemelerimi –

+0

@Daniel Peñalba bakın. Eğer durum bu ise 'FALSE, o zaman yazı seleciton yasaklamak gerekir. – VMAtm

+0

Andrei cevabına bakın, bunun gibi bir şey. –

3

: (ilk post güncelleştirmeyi yansıtacak şekilde) Eğer standart Font sınıfını kullanıyorsanız

+0

Üzgünüz, belki de sorumu doğru bir şekilde açıklamadım. Düzenlemeleri gör –