2013-12-19 95 views
1

我正在編寫一個用戶可以擴展和收縮的自定義控件。爲了獲得最直觀的用戶體驗,我想使用用戶以前可能遇到的plusminus圖標。它們可用於TreeView控制,所以理論上我應該能夠直接訪問它們以進行控制。我只是不知道如何。使用TreeView的加號和減號圖標

+0

只需使用ImageButtons並在線搜索免費的摺疊/展開圖標。編輯:Nvm,你已經有了圖標,只需使用ImageButton控件,或者簡單的圖像控件 –

+0

@HanletEscaño我覺得在我的應用程序中包含已經在用戶硬盤上的圖像是一種糟糕的形式。儘管它們的大小可能不重要。 – Fr33dan

+0

包含圖像的按鈕在此處不會提供最佳體驗。我會在代碼中的自定義控件中繪製 - 但請放心,這不是一件容易的事情。在代碼項目中尋找示例/教程... – MoonKnight

回答

3

您可以嘗試使用VisualStyle classes爲:

using System.Windows.Forms.VisualStyles; 

protected override void OnPaint(PaintEventArgs e) { 
    VisualStyleRenderer treeClose = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Closed); 
    treeClose.DrawBackground(e.Graphics, new Rectangle(16, 16, 16, 16)); 
    TextRenderer.DrawText(e.Graphics, "Closed Branch", SystemFonts.DefaultFont, new Point(32, 16), Color.Black); 

    VisualStyleRenderer treeOpen = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Opened); 
    treeOpen.DrawBackground(e.Graphics, new Rectangle(16, 32, 16, 16)); 
    TextRenderer.DrawText(e.Graphics, "Opened Branch", SystemFonts.DefaultFont, new Point(32,32), Color.Black); 

    base.OnPaint(e); 
} 

enter image description here

如果VISUALSTYLES不支持您的應用程序,你就必須自己手動繪製它們,這是不是太硬。一個矩形,中間加上一兩條線。

+0

我知道必須有某種方法來繪製它而不添加任何圖像,因爲它是一個常見的顯示元素。它的工作原理與我所期待的有所不同,但這正是我想要的。 – Fr33dan

相關問題