2013-09-04 5 views
4

У меня есть форма с меню и панель инструментов вверху. МенюStrip имеет приятный вид фона градиента, как я могу получить тот же эффект от элемента управления toolStrip? Я знаю о свойстве RenderMode, но изменение этого не имеет желаемого результата.toolStrip иметь menuStrip градиентный фон

toolStrip background

+0

Не думайте, что для этого есть свойство. Существует свойство «BackgroundImage», если вы хотите сделать для него градиентное изображение. –

+0

Как вы визуализируете свой 'MenuStrip' так, чтобы он имел такой« градиентный фон »? Я имею в виду, если вы знаете, как его отобразить, как можно применить один и тот же рендеринг на 'ToolStrip', так что фоны обоих одинаковы. –

+0

МенюStrip - это простой элемент управления menuStrip с RenderMode, установленным в «ManagerRenderMode», который является значением по умолчанию. Я не знаю, как это делается. Как применить тот же рендерер к toolStrip? – PaulK

ответ

1

Вы можете добиться этого с помощью пользовательского средства визуализации.

public class CustomToolStripRenderer : ToolStripProfessionalRenderer 
{ 
    public CustomToolStripRenderer() { } 

    protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e) 
    { 
     //you may want to change this based on the toolstrip's dock or layout style 
     LinearGradientMode mode = LinearGradientMode.Horizontal; 

     using (LinearGradientBrush b = new LinearGradientBrush(e.AffectedBounds, ColorTable.MenuStripGradientBegin, ColorTable.MenuStripGradientEnd, mode)) 
     { 
      e.Graphics.FillRectangle(b, e.AffectedBounds); 
     } 
    } 
} 

Затем установите свою инструментальную панель для использования экземпляра этого средства визуализации.

public Form1() 
{ 
    InitializeComponent(); 

    CustomToolStripRenderer r = new CustomToolStripRenderer(); 
    r.RoundedEdges = false; 

    toolStrip1.Renderer = r; 
} 
+0

Обратите внимание, что это не работает должным образом, если ToolStrip содержит элементы с раскрывающимися меню. Фоновые рисунки выпадающего меню также станут градиентными. – deegee