在原型项目中编辑ControlTemplate
之后,我决定将自定义ControlTemplate
移动到我的主项目中。这并没有像预期的那样开箱即用,Visual Studio通知我以下错误:
错误无法找到静态成员' InactiveSelectionHighlightBrushKey'在类型&SystemColors'。
xaml源中没有突出显示和警告,因此不清楚是什么问题。转到' InactiveSelectionHighlightBrushKey
'的定义,我没有看到SystemColors
成员列表中的条目:
我确实在原型项目的对象浏览器中找到了该成员。为什么SystemColors类在我的主项目中是不完整的?
答案 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