Я предполагаю, что вы спрашиваете о winforms, поскольку я не знаю о WPF.
Если вы просто хотите скрыть полосу изображения, вы можете установить для свойств ShowImageMargin
и ShowCheckMargin
значение false. Однако вы не сможете отображать изображения для своих пунктов меню.
По крайней мере, в XP установка свойства RenderMode
раскрывающегося списка на ToolStripRenderMode.System
даст вам меню без какого-либо оформления полей изображения; хотя он может не соответствовать визуальному стилю вашего приложения.
Если вы установите BackColor
для каждого из ваших пунктов меню, поле изображения будет скрыто.
Чтобы скрыть поле изображения без изменения визуального стиля раскрывающегося списка, вам необходимо создать средство визуализации с пустой функцией OnRenderImageMargin
, например:
class MyRenderer : ToolStripProfessionalRenderer
{
protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
// do nothing
}
}
и затем установите в раскрывающемся списке свойство Renderer
для экземпляра нового класса средства визуализации. Вы можете изменить цвет поля изображения аналогичным образом, изменив ColorTable
.
в рендере.
Но, прежде чем делать что-либо из этого, спросите себя:
- Есть ли преимущество в удобстве использования для изменения интерфейса на что-то менее знакомое?
- Если есть, то больше ли это преимущество, чем простота вашего кода, чтобы вы могли быстро реагировать на отзывы пользователей?
Ответ на первый вопрос обычно - «Нет».