2016-04-09 43 views
1

Yazılımımızın birkaç kullanıcısı erişilebilirlik nedenleriyle Windows'da yüksek kontrast teması kullanıyordu ve bu onay kutusunun arka planla aynı renkte olması nedeniyle bu kullanıcılar ToolStripMenuItem öğesinde kontrol durumunu göremiyorlar:.NET ToolStripMenüYüksek kontrastta görünmez onay kutusunu işaretleyin

Bu normaldir, Windows tema içinde:

ve bu yüksek kontrastlı, Windows tema içinde:

Özel kontrast görüntüleri geçici çözüm olarak kullanmadan, yüksek kontrastlı temalarda kontrol durumunu görünür hale getirmenin bir yolu var mı?

Bu .NET denetiminde bu amaç veya hata mı var? Tüm varsayılan .NET denetimleri, bunun dışında gördüğüm gibi yüksek kontrast temasını gerektiği gibi desteklediğinden, bunun dışında.

cevap

0

Özellikle görüntü varsa, nasıl düzgün şekilde görüntülendiğini bulamadım. Bu işleyici Eşyaları kalın metin kontrol yapar

public class ToolStripCheckedBoldRenderer : ToolStripProfessionalRenderer 
{ 
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) 
    { 
     if (e.Item is ToolStripMenuItem && ((ToolStripMenuItem)e.Item).Checked) 
     { 
      e.TextFont = new Font(e.Item.Font, FontStyle.Bold); 
     } 

     base.OnRenderItemText(e); 
    } 
} 

tsMain.Renderer = new ToolStripCheckedBoldRenderer();

: Check her öğeler görüntü varken görmek kolay değil çünkü Ama bunun yerine fazla normal tema görüntü kontrol devletler için kullanışlı olan geçici çözüm bulundu:

Yani bu çözüm hiç yoktan iyidir ama yine de daha iyi bir çözüm gerekiyor.