我现在正在修改一个公司内部的VS插件以支持Visual Studio 2012。我遇到的问题是如何使UI动态地适应活动的VS主题。
我找到了几个颜色/画刷的资源键(Microsoft.VisualStudio.Shell.11.0.dll中的VsColors/VsBrushes),我可以很容易地使用它们来改变扩展的基本颜色方案。问题是标准控件(文本框、组合框、复选框)具有默认的WPF外观,看起来非常奇怪。
因此,问题是:是否有可能使VS扩展的WPF工具窗口中的标准控件看起来类似于Visual Studio中使用的控件?我知道我可以使用控件模板或自定义控件自己完成这个任务,但如果可能的话,我真的想避免这样做。
..\Microsoft Visual Studio 11.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.11.0.dll
包含非常少量的控件,即使它们也仅限于在StartPage等位置找到的内容。更广泛的控件集存在于Microsoft Visual Studio 11.0\Common7\IDE\en\Microsoft.VisualStudio.Shell.UI.Internal.resources.dll
中,但只有其中的一些可以通过DynamicResource引用到您的包项目中。 - VivInternal.resources.dll
中的样式,并将其复制到您自己的 ResourceDictionary 中,以在所有包项目中使用。这样,即使通过服务包在 VS 中切换了某些内容,您的 UI 也不会被破坏。似乎不能直接获取样式或通过在*.vsct
文件中指定 xaml 控件是相当糟糕的。 - Viv