Где я могу получить темы для элементов управления WPF, которые напоминают интерфейс Visual Studio 2010? - PullRequest
7 голосов
/ 30 января 2011

Мое приложение построено на AvalonDock, который имеет неплохой скин Visual Studio 2010 (который намного красивее, чем все другие скины). Теперь я хотел бы стилизовать остальную часть моего приложения, чтобы пойти с ним. Меня больше всего интересуют следующие части:

  • Панель инструментов - Мне в основном удалось правильно подобрать цвета, но панели инструментов VS все еще красивее.
  • (Контекстное) меню - VS заменяет синее поле фокуса пункта меню на приятное оранжевое, которое придает приложению гораздо теплее и приятнее.
  • Фон главного окна - это одна вещь, которую AD неправильно понял.

Эти стили где-нибудь в сети? Или их можно как-то извлечь из ВС?

Спасибо за любую помощь.

1 Ответ

12 голосов
/ 30 января 2011

Когда у меня была та же цель, я использовал Reflector (с BAML Viewer Add-in ) и этот редактор цвета

Стили и шаблоны VSэлементы управления расположены по пути (Path of VS2010)\Common7\IDE\en\.Необходимый файл: Microsoft.VisualStudio.Shell.UI.Internal.resources.dll

Если развернуть эту библиотеку в BAML Viewer, будет много файлов, но самые полезные перечислены в файле themes / generic.xaml.

Они:

  • Styles / MainWindowStyle.xaml - разметка главного окна.
  • Styles / CommandMenuStyle.xaml - стили меню, панели инструментов, выпадающего списка.
  • Styles / StandardContextMenuStyle.xaml - стиль контекстного меню.

Например, если вы откроете MainWindowsStyle.xaml, вы найдете этот код:

<Setter x:Uid="Setter_26" Property="Background" Value="{DynamicResource {x:Static EnvironmentBackgroundGradientKey}}" />

сейчасустановите редактор тем VS, в Visual Studio откройте тему -> настроить цвета -> по умолчанию.enter image description here Ключ EnvironmentBackgroundGradient имеет 4 пункта в списке.Это можно записать следующим образом:

<LinearGradientBrush x:Key="EnvironmentBackgroundGradient" StartPoint="0.5,0" EndPoint="0.5,1">
    <GradientStop Color="#293955"/>
    <GradientStop Color="#35496a" Offset="0.5"/>
    <GradientStop Color="#35496a" Offset="0.5"/>
    <GradientStop Color="#293955" Offset="1"/>
</LinearGradientBrush>

Возможно, эти цвета где-то подробно описаны, но я не нашел этого, поэтому я использовал Reflector.

Другие сборки, которыеможет быть полезно:

  • en \ Microsoft.VisualStudio.Platform.WindowManagement.resources.dll - стили TabControl и DockManager
  • PrivateAssemblies \ Microsoft.VisualStudio.ExtensionsExplorer.UI.dll- выбор нового проекта

и здесь равен TabControl с видом VS2010, который я реализовал ранее.Он не имеет такой же функциональности, но выглядит одинаково.

...