문제

요즘 Visual C# (시각적 C# 2008)을 사용하면 Menustrips and Menus의 기본 색상이 파란색 인 것 같습니다. 나에게는 정말 이상하게 보이며 정말로 재정의하고 싶은 것입니다. 비주얼 스튜디오가 선택한 시스템 테마 나 무언가 에서이 파란색을 선택하고 있다고 생각하지만 내 시스템에서 실행되는 다른 Windows 앱은이 파란색이 없으므로 .NET 앱이 왜 가져야하는지 모르겠습니다. . ;)

어쨌든, 나는 이전 버전의 Visual Studio (Visual Studio.net)를 사용하여 응용 프로그램을 만들면 멘스 립과 메뉴의 기본 배경색이 당신이 볼 수있는 표준 회색임을 알았습니다. 이것은 내가 생각하는 문제에 대한 하나의 해결책이지만, 어리석은 사람처럼 보이며 현재 버전의 Visual C#에서 그것을 무시할 수있는 방법을 찾고 싶습니다.

도움이 되었습니까?

해결책

dotnet 1.x에는 menustrip이 없었으며 표준 Windows 메뉴를 사용했습니다.

DotNet 버전 2.0 이상은 menustrip을 가지고 있으며 vs 7 이상은 도구 상자에서 메인 메뉴를 제거하고 사무실을 사용하는 Menustrip으로 대체합니다. xp 2003 테마, 따라서 Menustrip 및 Toolstrip의 청색 구성표.

MainMenu는 여전히 표준 Windows 메뉴를 위해 도구 상자에 추가 할 수 있습니다.

다른 팁

설정 "렌더 머드"메래 스립의 옵션"체계""ManagerRenderMode "대신

:)

Menustrip의 뒷면을 설정해 보셨습니까? 다음과 같은 작업을 수행 할 수 있어야합니다.

this.menuStrip1.BackColor = Color.FromKnownColor(KnownColor.Control);

자신만의 렌더러를 만들 수 있습니다

    public class BrowserMenuRenderer : ToolStripProfessionalRenderer
{
    public BrowserMenuRenderer() : base(new BrowserColors()) {}
}
public class BrowserColors : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemBorder
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemSelectedGradientBegin
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemSelectedGradientEnd
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
}

그런 다음 Menustrip의 렌더러를 YourRenderer로 설정했습니다.

렌더 모드를 사용할 수 있지만 시스템 테마를 기본값으로 설정합니다. .NET을 사용하면 백색과 색상을 변경할 수 있지만 그 위에 호버링하면 기본 색상이 표시됩니다. 그녀는 그 주위의 방법 ...

그의 "Dropdownopening", "DropdownClosed"및 "MouseEnter"이벤트를 사용하여 달성하기가 매우 간단합니다.

private void fileToolStripMenuItem_DropDownOpening(object sender, EventArgs e){

    // When the user clicks on "File" it will change to red.
    fileToolStripMenuItem.ForeColor = Color.Red;
}


private void testToolStripMenuItem_MouseEnter(object sender, EventArgs e){

    // When the user hovers over a child of "file" called "test", "file" turns orange.
    fileToolStripMenuItem.ForeColor = Color.Orange;
}


private void test2ToolStripMenuItem_MouseEnter(object sender, EventArgs e){

    // When the user hovers on a child of "file" called "test2", "file" turns blue.
    fileToolStripMenuItem.ForeColor = Color.Blue;
}


private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e){

    // When the user leaves the "file" menu, it gets restored back to black.
    fileToolStripMenuItem.ForeColor = Color.Black;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top