赢7和赢10之间的边角半径样式不同

时间:2019-03-13 14:31:20

标签: wpf xaml

我在XAML中的样式为MenuItem,在Windows 7和Windows 10之间看起来有所不同。

MenuItem 代码:

<MenuItem Click="LangMouseLeftButtonUp" ContextMenuOpening="LangMouseRightButtonUp" 
          x:Name="LangImageIcon">
    <MenuItem.Style>
        <Style TargetType="MenuItem">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Language.ActualLanguage}" Value="EN">
                    <Setter Property="Icon">
                        <Setter.Value>
                            <Border CornerRadius="20" Width="26" Height="26"
                                    Margin="0" Padding="0,0,0,0" Background="Transparent"
                                    BorderBrush="White" BorderThickness="1">
                                <TextBlock HorizontalAlignment="Center" 
                                           VerticalAlignment="Center"
                                           Foreground="White" Background="Transparent"
                                           Text="EN" />
                            </Border>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=Language.ActualLanguage}" Value="DE">
                    <Setter Property="Icon">
                        <Setter.Value>
                            <Border CornerRadius="20" Width="26" Height="26"
                                    Margin="0" Padding="0,0,0,0" Background="Transparent"
                                    BorderBrush="White" BorderThickness="1">
                                <TextBlock HorizontalAlignment="Center" 
                                           VerticalAlignment="Center"
                                           Foreground="White" Background="Transparent"
                                           Text="DE" />
                            </Border>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </MenuItem.Style>
</MenuItem>

This is how it looks in windows 7在Windows 7中的外观

And this is how it looks in Windows 10在Windows 10中的外观

如何从Windows 10更改行为,使其看起来像Windows7。或者,如何更改样式,以便在更改代码时Windows 7显示相同的按钮,以便在Windows中看起来不错10?

1 个答案:

答案 0 :(得分:0)

这是因为Windows 7和Windows 10使用不同的主题。哪一个依次定义了Icon的{​​{1}}大小。解决此问题的方法。

  1. 尝试为MenuItem设置较小的HeightWidth;如果这对您有用。 我猜在Border某处可以工作

  2. 18下添加到您的应用程序/ ResourceDictionary的{​​{1}}中。这告诉您的WPF应用程序使用 Aero 主题。

MenuItem
  

如果您未指定版本和公共密钥令牌,则必须将主题程序集复制到可执行文件夹中。

  1. 您可以在Resources上定义<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> ,从而避免使用Template,并且两个操作系统版本都可以使用相同的功能。
相关问题