我試圖阻止MenuStrip
控件受到視覺樣式的影響。禁用ToolStripDropDownMenu的視覺樣式
所以我創建簡單的表格簡單的菜單條和殘疾人的視覺風格在Main()
:
// Application.EnableVisualStyles(); <-- no visual styles
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
這將產生這個樣子(注意灰色的邊框和背景):
現在我想以這種形式的其他控件受到視覺樣式影響的方式來做同樣的事情(我只想禁用這個下拉式樣的視覺樣式)。
所以起初我試圖禁用每ToolStripMenuItem
的DropDown
的視覺樣式,但它不起作用。然後我試圖禁用整個MenuStrip
的視覺樣式,但都沒有工作。
這裏是我的自定義的代碼的MenuStrip:
class MPMenuStrip : MenuStrip
{
[DllImportAttribute("uxtheme.dll")]
private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
protected override void OnHandleCreated(EventArgs e)
{
// first attempt:
foreach (ToolStripMenuItem menuItem in this.Items)
SetWindowTheme(menuItem.DropDown.Handle, "", "");
// second attempt:
SetWindowTheme(this.Handle, "", "");
base.OnHandleCreated(e);
}
}
儘管使用自定義MenuStrip
控制的,當Main()
Application.EnableVisualStyles();
被調用的,形式的外觀如下(藍色):
任何想法還有什麼可能影響此下拉菜單的外觀?
我錯過了什麼?
謝謝。
謝謝,這就是我一直在尋找的。現在一切都變得完美了:) – LihO