为什么我的应用程序忽略Windows 7上的某些xaml代码?
问题描述:
我正在创建一个WPF
C#
.Net
应用程序Aero
应该运行在Win7以及Win10上。为什么我的应用程序忽略Windows 7上的某些xaml代码?
在Win10上一切正常,但在Win7上,GUI看起来大不相同。 特别是,我的MenuItems似乎忽略了某些设置,例如VerticalContentAlignment
和BorderThickness
。
我该如何解决这个问题?
(一些代码:)
xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
<MenuItem Header="Intranet"
Grid.Column="2"
x:Name="Menu_Intranet"
ToolTip="Intranet"
BorderBrush="white"
BorderThickness="5"
VerticalAlignment="Stretch"
Click="Menu_1_Click"
ToolTipService.ShowOnDisabled="true"
VerticalContentAlignment="Center"/>
提前感谢!
答
我编辑了MenuItemControlTemplate
(在设计器 - >编辑模板中右键单击要编辑的控件),并通过Template="{DynamicResource MyMenuItemControlTemplate}"
将其应用于MenuItems
。
我想这不会让OS/Theme应用自己的设置。
尝试使用[Snoop](https://github.com/cplotts/snoopwpf)比较可视化树 - 您可能也想查看MenuItem的容器属性。 –
@AlexSeleznyov我无法下载Snoop,因为它没有通过我公司的病毒扫描程序。 :/ 我也尝试编辑默认的'ItemContainerStyle'的副本,并添加了'Style =“{StaticResource myMenuItemStyle}”'我的'MenuItem's之一,但这并没有做太多,虽然我很可能忽略了某些东西。 Code在这里太长,会更新OP。 –
直到你能够看到视觉树,你可能正在修复什么没有损坏。 VS2015/17内置Visual Tree查看器,但我不喜欢它,并始终关闭。您可能想尝试一下。 –