私は、ToolStrip (GripStyle: Hidden、Dock: Top、RenderMode: ManagerRenderMode) を備えたかなり標準的な MainForm がある Windows Form アプリ (C#、.NET 4.0、VS 2010) に取り組んでいます。ツールストリップには、いくつかの基本的な項目 (ToolStripLabel、ToolStripSeparator、ToolStripSplitButton) が含まれています。
これは次のようにレンダリングされます。
最初は単にツールストリップの下に「下」の境界線を追加したかったのですが、このツールストリップが「丸みを帯びた角」でレンダリングされていることにも気付きました (画像の右上と下の境界線を確認できます)。グラデーションの縦線。
これらの角を丸くしないようにするにはどうすればよいですか?
私は試した:
public class MainFormToolStripRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
base.OnRenderToolStripBorder(e);
var y = e.ToolStrip.Height-1;
e.Graphics.DrawLine(new Pen(SystemColors.ControlDark, 1), new Point(0, y), new Point(e.ToolStrip.Width, y));
}
this.toolStrip_Actions.Renderer=new MainFormToolStripRenderer();
そして、フォームの初期化で配線しました。
これにより、下の境界線が得られましたが、丸みを帯びた角には何もしませんでした。また、下の境界線を追加すると、丸みを帯びた角がより目立ちます。
次に、上記と同じイベント ハンドラーで四角形を描画してみました。(少なくとも) 丸みを帯びた角と垂直方向のグラデーションを、実線の四角形の境界線の後ろに隠そうとしました。使用可能な描画領域 (e.AffectedBounds) が丸い境界線内にあるため、これは機能しませんでした。
また、ToolStrip の RenderMode を System に設定しようとしました (レンダラーは使用しません)。この場合、ツールストリップの角はぴったりと合う (長方形) ように見えますが、ツールバー内の分割ボタンが壊れているように見えます (下向き矢印をクリックしてもドロップダウンが表示されません)。 -感触は少し圧倒されます(ツールストリップのいくつかのボタンにカーソルを合わせるまでは、かなりフラットです).
最終的には、ManageeRenderedMode、または Professional レンダラーから継承したカスタム レンダラーに固執したいと思いますが、丸みを帯びた角を取り除く必要があります。とりわけ、私が見ているものに近いと思われるこの SO Qを見つけましたが、私のケースに対する答えは得られませんでした。
前もって感謝します