为什么Windows8在某些控件的主题方面与windows7的行为不同?

时间:2013-03-12 15:05:40

标签: wpf windows-8 theming

正如在主题中已经提到的那样,我注意到windows8的行为与windows7不同,它们融合了一些主要的控件。 我第一次在windows8中打开我的应用程序时发现了以下内容:

为组合框设置背景颜色对windows8没有影响,但对于文本框可以正常工作。 我不得不覆盖组合框的整个控制模板,以便为一些组合框提供我想要的颜色。

我在Windows 8上遇到的另一个问题是,我的文本框的所有内容在默认情况下都不会垂直居中,所有内容都与顶部对齐。 在Windows7中,默认情况下,所有内容都垂直居中,而不设置VerticalContentAlignment属性。 好吧,没有必要再次覆盖文本框的整个模板,如组合框之前所要求的那样。将VerticalContentAlignment属性设置为所有tetxbox的“居中”工作。

到目前为止我注意到的第3个问题是,我无法在大于16x16的MenuItems中显示图标。 我所有的MenuItem都有一个20x20大小的Icon,在windows7中显示得很好。 在Windows8中,我的所有图标都被裁剪为16x16。

我使用了以下代码,在Windows7中运行良好:

<MenuItem Header="I'm a header">
   <MenuItem.Icon>
       <Image Source="Image.png" Height="20" Width="20" />
  </MenuItem.Icon>
</MenuItem>

...但在Windows8上没有。

我敢打赌,在Windows8上存在更多小问题。

任何人都知道Windows8中该行为的原因是什么?

2 个答案:

答案 0 :(得分:0)

我看了一下microsoft连接页面,我已经将两个描述的问题报告为错误,组合框背景和图像裁剪为16x16的菜单项。

答案 1 :(得分:0)

只需提取组合框和菜单项的模板,无需进行任何更改 并将其设置为样式修复了Windows8上的问题。

现在你可以像往常一样使用compbox的background属性,并且设置menuitem图标的高度和宽度现在也可以。