8

我的应用程序是围绕 AvalonDock 构建的,它具有非常好的 Visual Studio 2010 皮肤(比所有其他皮肤都漂亮)。现在我想为我的应用程序的其余部分设置样式以配合它。我对以下部分最感兴趣:

  • 工具栏- 我主要是靠自己来获得正确的颜色,但 VS 工具栏仍然更漂亮。
  • (Context)Menu - VS 将蓝色菜单项焦点框替换为漂亮的橙色焦点框,这使应用程序更加温暖和友好。
  • 主窗口背景- 这是 AD 做得不对的一件事。

这些样式是否在网络上的某个地方?还是可以以某种方式从 VS 中提取它们?

谢谢你的帮助。

4

1 回答 1

13

当我有同样的目的时,我使用了 Reflector(带有BAML Viewer Add-in)和这个颜色编辑器

VS 控件的样式和模板位于路径(Path of VS2010)\Common7\IDE\en\. 必要的文件是Microsoft.VisualStudio.Shell.UI.Internal.resources.dll

如果要在 BAML Viewer 中扩展这个库,会有很多文件,但最有用的文件列在文件主题/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 Color 主题编辑器,在 Visual Studio 中打开 Theme -> Customize Colors -> Default。 在此处输入图像描述 该键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 - 选择新项目

这是我之前实现的 VS2010 外观TabControl它没有相同的功能,但看起来相同。

于 2011-01-30T18:02:00.533 回答