2

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

我开发了一个小型的仅供我使用的 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 设置的主题不匹配。)

关于检查或寻找什么的任何想法?

干杯 - 迈克。

4

2 回答 2

1

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

[VsBrushes/VsBrush] 与 [EnviromentColors]:

  1. VsBrushes 和 VsBrush 基本上是一回事,在 VS2010/2012/2013 中支持;
  2. EnviornmentColors 仅在 VS2012/2013 中提供,在 VS2010 中不支持;
  3. EnvironmentColors 仍在开发中,将为新主题添加更多颜色;VsBrushes/VsBrush 是相对静态的。

[VsBrushes] 与 [VsBrush]:

  1. “VsBrushes”的好处是它在构建过程中检查是否存在特定的颜色名称。
  2. “VsBrushes”的坏处是必须在 XAML 文件头中指定 VS 命名空间和程序集版本,这很不方便。(例如 xmlns:vsfx="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.10.0")

谢谢。

于 2014-09-03T06:25:42.730 回答
-1

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

于 2013-08-30T18:22:12.747 回答