В настоящее время у меня есть пользовательский Render, настроенный для MenuStrip в приложении Windows Forms на С#:
private class HeaderMenuRender : ProfessionalColorTable
{
public override Color MenuItemSelectedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemSelectedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemBorder
{
get
{
return Color.Gray;
}
}
public override Color MenuBorder
{
get
{
return Color.Gray;
}
}
}
Затем это применяется к существующему элементу управления MenuStrip в форме для создания пользовательского рендеринга.
Однако при запуске приложения и выполнении выбора в отображаемом меню, несмотря на то, что параметры меню имеют правильный цвет, появляется небольшая полоса «Белый» (возможно, это может быть цвет «Управление»), которая охватывает длину выбранного MenuStrip. вариант (указан в синем поле ниже):
Есть ли какое-то конкретное свойство пользовательского Renderer, которое я не включаю, или что-то, что мне не хватает, которое устанавливает эту конкретную часть выбранного элемента MenuStrip? Примеры, которые я видел в других местах, похоже, не имеют этой проблемы.