Ответ 1
В панели свойств установите "RenderMode" в "System" или используйте
.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
Выполнение этого изменит .BackColor на "Control", но вы можете изменить его после того, как захотите.
Вот картина, которая показывает проблему. Посмотрите на нижний правый угол.
Кто-нибудь знает, как избавиться от него?
Настройка LayoutStyle
на VerticalStackWithOverflow
исправляет его, но также центрирует объекты, которые я не хочу использовать горизонтально.
Я просто хочу вертикальный стек, как на рис., но без этой черной линии в нижнем правом углу.
В панели свойств установите "RenderMode" в "System" или используйте
.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
Выполнение этого изменит .BackColor на "Control", но вы можете изменить его после того, как захотите.
Извините за опоздание на вечеринку, но принятый ответ не сработал для моих нужд. Следующее решение - это то, с чем я столкнулся:
1) Создайте собственный рендерер:
class CustomToolStripProfessionalRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
// Don't draw a border
}
}
2) Используйте собственный рендерер:
toolStrip1.Renderer = new CustomToolStripProfessionalRenderer();
Вышеупомянутое решение удовлетворяет потребности в исходном вопросе, но мне тоже не понравился фон градиента на ToolStrip. Я хотел, чтобы ToolStrip был "невидимым" контейнером:
1) Создайте пользовательскую таблицу цветов:
class CustomProfessionalColorTable : ProfessionalColorTable
{
public override Color ToolStripGradientBegin
{
get { return SystemColors.Control; }
}
public override Color ToolStripGradientMiddle
{
get { return SystemColors.Control; }
}
public override Color ToolStripGradientEnd
{
get { return SystemColors.Control; }
}
}
2) Используйте таблицу пользовательских цветов:
class CustomToolStripProfessionalRenderer : ToolStripProfessionalRenderer
{
public CustomToolStripProfessionalRenderer()
: base(new CustomProfessionalColorTable())
{
}
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
// Don't draw a border
}
}
Я думаю, что ваш лучший снимок - установить RenderMode
в System
в свойствах и оставить свойства макета HorizontalStackWithOverflow
.
Но это, если вы не возражаете изменить стиль рисования всплывающей подсказки.