2009-03-04 3 views
2

У меня есть элемент управления, который содержит NumericUpDown в ToolStripControlHost и предоставляет свойства NumericUpDown. Функционально, это нормально, но когда он помещается на ToolStrip, он не подходит визуально с другим ToolStripItem.Как рисовать размещенный NumericUpDown с помощью существующего ToolStripRenderer?

Я хочу использовать ToolStrip существующий ToolStripRenderer, чтобы нарисовать элемент управления аналогично ToolStripComboBox es, которые также находятся на контроле. Я не заинтересован в создании настраиваемого ToolStripRenderer, чтобы сделать это, так как я хочу, чтобы другие, которые используют элемент управления, могли использовать его с любым средством визуализации, которое они выбирают.

Я попытался переопределить OnPaint и OnPaintBackground в классе управления хостингом, а также в размещенном классе управления и с использованием методов рисования, но все, что я могу достичь, - это иметь неокрашенную область вокруг краев; кнопки вращения по-прежнему нарисованы с помощью системной темы.

Как я могу разместить размещенный NumericUpDown с использованием существующих ToolStripRenderer?

ответ

0

Класс NumericUpDown действительно представляет собой оболочку вокруг общего класса управления, который существует как часть GDI. Основной общий элемент управления будет использоваться одним из двух способов в зависимости от того, включены ли визуальные стили для приложения. Чтобы переопределить чертеж, вам нужно будет выполнить весь чертеж самостоятельно. Вы не можете указать, какой элемент управления вы хотите изменить только кнопками или рамкой.

Выполнение всего чертежа намного сложнее, чем кажется. Извините, я не могу предложить легкое решение, но я не думаю, что есть простое решение.

+0

Я хочу сделать все чертеж самостоятельно, но я хочу использовать методы ToolStripRenderer для этого. – Simon