Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 为什么vsshell:VSBrush中的DynamicResources未解析_Visual Studio_Visual Studio Extensions_Visual Studio 2019 - Fatal编程技术网

Visual studio 为什么vsshell:VSBrush中的DynamicResources未解析

Visual studio 为什么vsshell:VSBrush中的DynamicResources未解析,visual-studio,visual-studio-extensions,visual-studio-2019,Visual Studio,Visual Studio Extensions,Visual Studio 2019,我制作了一个新的VisualStudio扩展,它带有一个工具窗口,正如微软在这里描述的那样 我尚未对Visual Studio生成的代码进行任何更改,但收到两条警告: The resource "{x:Static vsshell:VsBrushes.WindowKey}" could not be resolved. The resource "{x:Static vsshell:VsBrushes.WindowTextKey}" could not be resolved.

我制作了一个新的VisualStudio扩展,它带有一个工具窗口,正如微软在这里描述的那样

我尚未对Visual Studio生成的代码进行任何更改,但收到两条警告:

The resource "{x:Static vsshell:VsBrushes.WindowKey}" could not be resolved.    
The resource "{x:Static vsshell:VsBrushes.WindowTextKey}" could not be resolved.    
由于以下屏幕截图中显示的两行

这里有一个非常类似的问题

除了这个问题提到了VisualStudio2012。我使用的是Visual Studio 2019,所以在此期间可能会有一些变化

这个问题的答案对我来说并不适用

有人能解释这种行为吗?自动生成的代码应该包含这些警告,这似乎很奇怪

出现警告的原因:

请参阅。工具窗口项使用DynamicResources,因此可以在运行时设置和更改资源

WindowsKey和WindowsTextKey来自,这两种颜色资源在设计器时间内无法访问,而是可以在运行时访问。这就是为什么工具窗口控件在安装.vsix后运行良好,而vs显示两个警告

此外:

如果将DynamicResource更改为StaticResource,则警告将变为错误。模板中的默认值
vsshell:vsbrush.WindowKey
只能在运行时访问,因此开发团队默认设置DynamicSource

我认为这是出于设计,警告实际上可以被看作是一条信息:
可能是notFoundResource,请小心所以我们可以忽略它

要删除警告,请执行以下操作:

正如我所说,这只是一条消息,告诉我们有可能无法解析资源,因为设计器无法在“设计器时间”中访问资源
vsshell:vsbrush.WindowKey
。为什么不将颜色设置为我们在设计控件时可以访问的系统颜色

实际上,我们正在开发一个窗口控件,当然我们可以更改控件的颜色以使其更好。(UI设计?)因此,对于我来说,我将这两个资源更改为SystemResource,可以在设计器时间内访问,然后警告消失了:

Background="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"
Foreground="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}"