我有一个带常规组合框的wpf应用程序。 在Windows 8 RP中测试此应用程序时,组合框的行为有点奇怪。
要选择项目,我必须将鼠标光标移动到该项目上的文本上, 否则控件将不会使用悬停样式标记它,如果我单击它将不会将其注册为该项目的有效点击。组合框将关闭并选择最后选择的组合。
组合框项目上的完整行应该是可选择的,而不仅仅是文本区域。 我没有在组合框上做任何造型或模板。只需将其绑定到数据源即可。
之前有人看过这种行为并知道该怎么做?
仅在Windows 8中,在Windows 7中它才能正常工作。
答案 0 :(得分:2)
编辑:这个错误实际上是由Microsoft在Windows 8的最后一个Release Preview版本和RTM之间修复的。我简直不敢相信!!!
- 原始答案:
我在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 here而不是Add来保留我对各种控件的自定义样式。