VS2010到VS2012 ToolWindow XAML参考VsBrushes

时间:2013-05-07 16:54:06

标签: visual-studio-2010 xaml visual-studio-2012 vsix

所以我想我会在那里运行它,看看我是否遗漏了一些愚蠢的东西。

我开发了一个小的my-use-only VSIX扩展,在我的一个工具窗口中,我使用代码设置前景/背景颜色:

    Foreground="{DynamicResource {x:Static vsfx:VsBrushes.ToolWindowTextKey}}"
    Background="{DynamicResource {x:Static vsfx:VsBrushes.ToolboxBackgroundKey}}"

vsfx:名称空间引用为:

    xmlns:vsfx="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.10.0"

我看到那里引用了10.0,对我而言,这是我在VS2010中最初做到这一点的预期。现在我的工作已经让我升级到VS2012,XAML设计师在这两个SynamicResources上给出了以下错误。错误读取'The resource {x:Static vsfx:VsBrushes.ToolWindowTextKey} could not be resolved.',第二个错误。

现在,请注意该项目仍然可以构建和运行,并且可以加载到VS2012中。但是,颜色全部关闭(标准,与VS设置的主题不匹配。)

有关检查或寻找什么的想法?

干杯 - 麦克

2 个答案:

答案 0 :(得分:1)

我遇到了和你们一样的问题,并发现了以下事实:

[VsBrushes / VsBrush] v.s. [EnviromentColors]:

  1. VS2010 / 2012/2013支持VsBrushes和VsBrush基本相同;
  2. EnviornmentColors仅在VS2012 / 2013中,VS2010不支持;
  3. EnvironmentColors仍在进行中,为新主题添加更多颜色; VsBrushes / VsBrush相对静止。
  4. [VsBrushes] v.s. [VsBrush]:

    1. “VsBrushes”的好处在于它会检查建筑物中是否存在特定的颜色名称。
    2. 关于“VsBrushes”的坏处是必须在XAML文件头中指定VS命名空间和汇编版本,这是不方便的。 (例如xmlns:vsfx =" clr-namespace:Microsoft.VisualStudio.Shell; assembly = Microsoft.VisualStudio.Shell.10.0")
    3. 感谢。

答案 1 :(得分:-1)

使用EnvironmentColors类,如下所述: http://msdn.microsoft.com/en-us/library/vstudio/jj991932.aspx