Where can I get themes for WPF controls that resemble the Visual Studio 2010 interface?

倾然丶 夕夏残阳落幕 提交于 2019-11-30 06:38:33

问题


My application is build around AvalonDock, which has quite good Visual Studio 2010 skin (which is much prettier than all the other skins). Now I would like to style the rest of my application to go with it. I'm interested most in following parts:

  • Toolbar - I mostly managed to get the colors right on my own, but the VS toolbars are still prettier.
  • (Context)Menu - VS has the blue menu item focus box replaced with a nice orange one, which gives the application much warmer and friendlier feel.
  • Main window background - this is one thing which AD didn't get right.

Are these styles somewhere on the web? Or can they be somehow extracted from the VS?

Thanks for any help.


回答1:


When I had the same purpose, I used Reflector (with BAML Viewer Add-in) and this color editor

The styles and templates of the VS controls are located at the path (Path of VS2010)\Common7\IDE\en\. Necessary file is Microsoft.VisualStudio.Shell.UI.Internal.resources.dll

If to expand this library in BAML Viewer, there will be many files, but the most useful are listed in the file themes/generic.xaml.

They are:

  • Styles/MainWindowStyle.xaml - mark-up of the main window.
  • Styles/CommandMenuStyle.xaml - styles of the menu, the toolbar, the combobox.
  • Styles/StandardContextMenuStyle.xaml - style of the context menu.

For example, if you open MainWindowsStyle.xaml, you will find this code:

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

Now install VS Color theme editor, in Visual Studio open Theme -> Customize Colors -> Default.

The key EnvironmentBackgroundGradient has 4 items in the list. It can be written in the following way:
<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>

Probably, these colors are explained somewhere in detail, but I haven't found this, so I used Reflector.

Another assemblies that can be useful:

  • en\Microsoft.VisualStudio.Platform.WindowManagement.resources.dll - styles of the TabControl and DockManager
  • PrivateAssemblies\Microsoft.VisualStudio.ExtensionsExplorer.UI.dll - selection of a new project

And here is TabControl with VS2010 look that I've implemented earlier. It doesn't have the same functionality, but it looks the same.



来源:https://stackoverflow.com/questions/4842736/where-can-i-get-themes-for-wpf-controls-that-resemble-the-visual-studio-2010-int

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!