Различный стиль в угловом радиусе между победой 7 и победой 10 - PullRequest
0 голосов
/ 13 марта 2019

У меня есть стиль MenuItem в XAML, и он выглядит по-разному в 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, чтобы оно выглядело как Windows 7. Или, как мне нужно изменить стиль, чтобы Windows 7 отображала ту же кнопку при изменении кода, чтобы она хорошо выглядела в Windows? 10

1 Ответ

0 голосов
/ 14 марта 2019

Это потому, что Windows 7 и Windows 10 используют разные темы. Который в свою очередь определяет Icon размеры для MenuItem. Пути, которыми вы можете решить эту проблему.

  1. Попробуйте установить меньшее Height и Width для вашего Border; Если это работает для вас. Где-то вокруг 18 сработает, я думаю .

  2. Добавьте ниже ResourceDictionary к вашему заявлению / MenuItem '* Resources. Это говорит вашему приложению WPF использовать тему Aero .

<ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

Если вы не указываете версию и токен открытого ключа, вам придется скопировать сборку темы в исполняемую папку.

  1. Вы можете определить Template для вашего MenuItem, что исключает использование Icon, и вы можете получить одинаковую работу для обеих версий операционной системы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...