SystemColor缺少InactiveSelectionHighlightTextBrushKey

时间:2017-04-15 14:20:32

标签: c# wpf xaml systemcolors

在原型项目中编辑ControlTemplate之后,我决定将自定义ControlTemplate移动到我的主项目中。这并没有像预期的那样开箱即用,Visual Studio通知我以下错误:

  

错误无法找到静态成员' InactiveSelectionHighlightBrushKey'在类型&SystemColors'。

xaml源中没有突出显示和警告,因此不清楚是什么问题。转到' InactiveSelectionHighlightBrushKey'的定义,我没有看到SystemColors成员列表中的条目:

enter image description here

我确实在原型项目的对象浏览器中找到了该成员。为什么SystemColors类在我的主项目中是不完整的?

1 个答案:

答案 0 :(得分:1)

基于this comment我开始寻找框架版本的差异。

出于某种原因,即使项目是TargetFramework,也设置为“.NET Framework 4.5.2'在属性中,PresentationFramework.dll和WindowsBase.dll的引用路径指向/v4.0路径。在属性中将目标从4.0更改为4.5.2无效。我必须手动删除并添加引用。

.csproj上的git diff显示以下更改:

-    <Reference Include="PresentationFramework">
-      <HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\PresentationFramework.dll</HintPath>
-    </Reference>
+    <Reference Include="PresentationFramework" />

WindowsBase.dll也是如此。 The explicit definition of HintPath probably caused the DLL references not to change from path version