3

最近の Visual C# (具体的には Visual C# 2008) では、メニューストリップとメニューのデフォルトの色が青になっているようですが、これは私には非常に奇妙に見えます。Visual Studio は、選択したシステム テーマなどからこの青色を取得していると推測していますが、システムで実行されている他の Windows アプリにこの青色が含まれていないため、.NET アプリにこの青色が必要な理由がわかりません。 . ;)

とにかく、以前のバージョンの Visual Studio (Visual Studio.NET) を使用してアプリケーションを作成すると、メニューストリップとメニューのデフォルトの背景色が標準の灰色になることに気付きました。これは私が推測する問題の 1 つの解決策ですが、ちょっとばかげているように思えます。Visual C# の現在のバージョンでそれをオーバーライドする方法を見つけたいと思っています。

4

5 に答える 5

11

MenuStripの " RenderMode " オプションを"managerRenderMode" ではなく" System " に設定します。

:)

于 2009-04-09T13:54:27.977 に答える
3

menuStrip の背景色を設定してみましたか? 次のようなことができるはずです。

this.menuStrip1.BackColor = Color.FromKnownColor(KnownColor.Control);
于 2009-03-06T00:08:12.993 に答える
2

You can make own Renderer

    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); }
    }
}

Then you just set your menustrip's renderer as YourRenderer

于 2015-07-21T22:04:19.887 に答える
0

レンダリングモードを使用できますが、これはシステムテーマをデフォルトに設定するだけです。.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;
}
于 2009-07-21T05:01:33.790 に答える
0

DotNet 1.x には MenuStrip がなく、標準の Windows メニューを使用していました。

DotNet バージョン 2.0 以降には MenuStrip があり、VS 7 以降ではツールボックスから MainMenu が削除され、Office を使用する MenuStrip に置き換えられます。Xp2003 テーマなので、MenuStrip と ToolStrip の配色は青色です。

MainMenu は、標準の Windows メニューのツールボックスに引き続き追加できます。

于 2009-03-06T02:41:45.420 に答える