1

我有一个带有常规组合框的 wpf 应用程序。在 Windows 8 RP 中测试此应用程序时,组合框的行为有点奇怪。

要选择一个项目,我必须将鼠标光标移动到该项目上的文本上,否则控件将不会用悬停样式标记它,并且如果我单击它不会将其注册为对该项目的有效单击。组合框将关闭并选择最后一个被选中的组合框。

组合框项目上的整行应该是可选择的,而不仅仅是文本区域。我没有在组合框上做任何样式或模板。只需将其绑定到数据源。

任何人以前见过这种行为并知道该怎么做?

它仅在 Windows 8 中,在 Windows 7 中正常工作。

4

1 回答 1

2

编辑:这个错误实际上是由微软在 Windows 8 和 RTM 的最后一个 Release Preview 版本之间修复的。我不敢相信!!!

——原答案:

我在 Windows 8 RP 上遇到了同样的问题。在它被修复或有更好的解决方法之前,我打算通过在检测到 Windows 8 时在应用程序启动时执行以下命令来强制 Aero 主题:

Uri uri = new Uri("PresentationFramework.Aero;V4.0.0.0;31bf3856ad364e35;component\\themes/aero.normalcolor.xaml", UriKind.Relative);
Resources.MergedDictionaries.Insert(0, Application.LoadComponent(uri) as ResourceDictionary);

我不确定这是多么正确/好,但它让我回到了工作组合框,并且似乎已经否定了除按钮和文本框之外的所有控件中存在的弱 Metro 样式,出于某种原因。

我在此处使用 Insert 而不是 Add 来保留我对各种控件的自定义样式。

于 2012-08-02T20:59:33.170 回答