2016-08-04 168 views
0

我想創建一個與默認系統圖標的自定義標題的無國界的WinForm爲:獲取默認的Windows系統圖標的最小化,最大化和關閉

  • 最小
  • 最大化
  • 關閉

有什麼辦法可以在C#或VB中實現這一點嗎?

+0

你可以使用帶有圖像按鈕爲... –

+0

@ZoharPeled但我想顯示那些默認圖標選項不總是相同的 – Error404

+0

它們不是圖標,它們被繪製。他們看起來每個Windows版本都會發生變化,窗口鑲邊是微軟使他們的發佈看起來「新穎而有吸引力」的基本方式。從Win8開始,應用程序無法再繪製它們以匹配操作系統主題,並始終獲取傳統視覺樣式渲染器。在設計Winforms表單時,在Visual Studio中相當可見,請注意框架樣式錯誤並且看起來像Win7版本。鑑於你無論如何都無法做到,最好只是[自己動手](http://stackoverflow.com/a/23139022/17034)。 –

回答

1

不知道您的具體目標是什麼,但gernerally,對於「使用C#我寧願WPF(的Windows Presentation Foundation)custom'的設計,而不是Windows窗體...

我想這也可能在Windows窗體中,也許如果你想刪除邊界,並創建3個按鈕,使用常見的Windows符號作爲背景?但我不確定是否it's工作;

編輯):使用控制「paint'事件

,你應該能夠達到自己的目標:

private void button_Paint(object sender, PaintEventArgs e) 
{ 
    if (VisualStyleRenderer.IsElementDefined(VisualStyleElement.Window.CloseButton.Normal)) 
    { 
     VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.Window.CloseButton.Normal); 
     Rectangle rectangle1 = new Rectangle(button.Location.X, button.Location.Y, button.Width, button.Height); 
     renderer.DrawBackground(e.Graphics, rectangle1); 
    } 
} 

這是檢查是否可以使用樣式,然後將選定的VisualStyleElement(例如CloseButton,MinButton等)繪製到按鈕/控件的位置。

請參閱VisualStylesElement-CloseButtonControl.Paint-Event瞭解更多信息。

正常工作對我來說,希望it's什麼......你一直在尋找...

+0

我必須使用Windows窗體,並且我已經創建了標題,但是我缺少我想要顯示默認系統按鈕的按鈕 – Error404

+0

嗯,好吧,您需要按鈕像系統一樣更改,如果將最大化狀態更改爲例?所以按鈕看起來不同,取決於窗口的狀態? – Schnicker

+0

沒有我需要的是以某種方式導入菜單欄中的按鈕的默認系統圖標 – Error404

-1

據我所知,您可以通過將三個按鈕與圖像放在一起使用窗體窗體的「錨屬性」+「文檔屬性」。

或者在這裏我展示了一個示例,它顯示了帶有控件的windows窗體的自定義主題。

此示例是在Vb.NET.Save中作爲類在您的項目中,建立您的項目,然後控件將出現在工具箱區域。拖動&刪除該控件。請享用!

嘗試這個 T3 Vb.NET Themes Archives

+1

這裏的問題並不是真正如何改變窗口主題,但他希望Windows Aero(或當前主題)的實際最小化,最大化和關閉圖像_so,以便他實際上有任何圖像放在buttons_上。 –

相關問題