MenuStrip
컨트롤이 시각적 스타일의 영향을받지 않도록하려고합니다.ToolStripDropDownMenu의 시각적 스타일 사용 안 함
은 그래서 Main()
에 간단한 메뉴 스트립 장애인 시각적 스타일과 간단한 양식을 만들었습니다
이 모양을 얻을 수
// Application.EnableVisualStyles(); <-- no visual styles
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
(회색 테두리와 배경에주의) 이제이 양식의 다른 컨트롤이 시각적 스타일의 영향을받는 방식으로 동일한 작업을 수행하려고합니다.이 드롭 다운의 비주얼 스타일을 사용하지 않도록 설정하고 싶습니다.
처음에는 DropDown
(ToolStripMenuItem
)의 시각적 스타일을 사용하지 않으려 고했지만 처음에는 작동하지 않았습니다. 그런 다음 전체 MenuStrip
에 대한 시각적 스타일을 사용하지 않으려 고했지만 그 중 하나도 작동하지 않았습니다. Main()
에서 Application.EnableVisualStyles();
가 호출 될 때, 사용자 정의 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 내 사용자 지정의 코드입니다다른 아이디어는이 드롭 다운의 모양에 어떤 영향을 줄 수 있습니까?
내가 무엇이 누락 되었습니까?
감사합니다.
고마워, 그게 내가 원하는거야. 모든 것이 이제 완벽하게 이해됩니다 :) – LihO