Из того, что я понял, читая комментарии, вы ищете простой элемент управления панели инструментов, который обеспечивает быстрый способ для пользователя выполнять общие задачи / операции.Однако, в отличие от панели быстрого доступа, включенной в ленту в стиле Microsoft Office, вам не нужно решение, которое требует рисования в области, не являющейся клиентом, поскольку это решение не переносимо.Рисование в области, не являющейся клиентом, требует развертывания полностью настраиваемого окна Chrome, которое не будет работать без проблем во всех версиях Windows (из-за DWM и множества других причин).
Я предложил использоватьСтандартный ToolStrip
элемент управления предоставляется в Framework, но вы выразили обеспокоенность тем, что он рисует белую линию под ним, и сказали, что при попытке скрыть эту белую линию, поместив ее внутри панели, выделяется граница (который вы хотите) также покрывается.
Поэтому я предлагаю пару возможных решений:
1. ToolStrip
'Нижняя белая граница отображается только в том случае, если для свойства RenderMode
установлено значение «Система».Вместо этого вы можете установить значение «Профессиональный» и изгнать белую линию навсегда, сохраняя эффект затемненной границы при наведении.
2. Если вам не нравится «Профессиональный»«Стиль рендеринга и желание придерживаться« Система », вы можете просто унаследовать от существующего ToolStripSystemRenderer
и остановить его от рисования нижней белой границы:
public class CorrectedToolStripRenderer : ToolStripSystemRenderer
{
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//do nothing here
}
}
А затемпросто установите элемент управления ToolStrip
на использование своего пользовательского рендерера, например:
myToolStrip.Renderer = new CorrectedToolStripRenderer();
3. Вы можете реализовать полностью пользовательский рендерер дляToolStrip
, полученный непосредственно из базового ToolStripRenderer
класса , и определите для себя, как именно вы хотите, чтобы он выглядел.
Например, потому что я ненавижу элементы управления, которые неПохоже на стандартные элементы пользовательского интерфейса Windows, у меня есть пользовательский рендер, который я использую, чтобы меню и панели инструментов во всех моих приложениях WinForms были нарисованы так же, как в ОС.(«Система» не понимает это близко к правде в Vista / 7.) Моя сильно измененная версия этого образца .
Другие (здесь на вас смотрит, Officeкоманда) очень нравится пользовательский интерфейс, и этот способ позволяет вам действительно изо всех сил и соответствовать внешнему виду вашего приложения.Например, вот пользовательские средства визуализации, которые выглядят как Visual Studio 2010 или Office 2007 , чтобы начать работу.Поиск в Google увеличится на несколько тонн.