我碰到一个相当奇特的事情发生,我有一个WPF XMAL页面中定义一个DataGrid
具有以下声明:XAML语法错误阻止设计师,但编译罚款
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FF3399FF" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#FF3399FF"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White" />
</DataGrid.Resources>
技术上两个Inactive
SystemColors
类型与.NET 4.5,但是当它被设置为面向.NET 4,而这些无效刷工作,我可以编译程序,但同时它的设置为面向.NET 4加载在Visual Studio中XMAL设计师页面引发错误The member "InactiveSelectionHighlightTextBrushKey" is not recognized or is not accessible.
然后阻止设计师视图。但它仍然按照上面定义的程序编译和显示。
这似乎很不稳定,至少可以说,我不知道这是一个Visual Studio 2012问题,还是它允许程序编译,因为我的开发计算机已安装.net 4.5,它只是改变目标框架当它看到有东西在使用它时(我非常怀疑这个)。或者有可能Inactive类型在.net 4中,但没有在文档中列出,只是在VS中导致这个问题?
有没有更好的办法在.NET 4中,让我设置一个DataGrid行的非活动选择颜色做到这一点?或者是唯一的方法来升级到.net 4.5?
什么发生在你的机器上运行您的程序没有安装4.5? – Nzc
我希望我可以测试这个,但没有一个计算机周围没有4.5。 –
@Nzc - 应用程序无法在没有4.5的机器上运行(只是在我的一个应用程序中随机遇到此问题,并在尝试查找解决方案时遇到此SO问题)。 – Scott