Размещение всплывающего окна WPF не работает должным образом на экране QHD (Lenovo Yoga 2 Pro) - PullRequest
0 голосов
/ 13 декабря 2018

У нас есть всплывающее окно в нашем приложении, которое отлично работает на всех наших установках с разными разрешениями экрана (от 1600x900, свыше 1920x1080 до 4K).Также он отлично работает с различными масштабами текста (от 100% до 300%).Однако на одной из машин размещение всплывающих окон полностью искажено.Вместо того чтобы размещать его относительно верхней левой позиции родительского элемента управления, он располагается слева от него слева?Рассматриваемый компьютер - это Lenovo Yoga Pro 2 с Windows 10.

Вот как всплывающее окно отображается в Viusal Studio Designer: Popup when looked up in designer

На всех Windows 10& Всплывающее окно 7 машин расположено в 0,0 (вверху, слева) относительно кнопки, и это очень хорошо:

This is proper position

HОднако, когда я запускаюПриложение на Lenovo Yoga 2 Pro полностью искажается и перемещается по левой стороне кнопки ?!Как это возможно, если мы установили относительное размещение, а горизонтальное и вертикальное смещение равны 0?It is moved left?!?

А вот код:

<Window x:Class="WpfApp1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp1"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />


        </Grid.ColumnDefinitions>

        <StackPanel Grid.Column="1" Margin="15" Orientation="Horizontal" >
            <Button Name="btnLearn"
                Content="Learn About Caesar"
                Margin="5" Padding="10,5"
                VerticalAlignment="Center"
                MouseEnter="Button_MouseEnter"
                >
            </Button>
            <Popup Name="popCaesar" StaysOpen="False"
                   Placement="Relative"  HorizontalOffset="0" VerticalOffset="0"
                   PlacementTarget="{Binding ElementName=btnLearn}"
                   >
                <TextBlock Text="Julius Caesar was a Roman emperor who lived from 100 BC to 44 BC"
                    Background="AntiqueWhite"
                    Padding="5" Width="150"
                    TextWrapping="Wrap"/>
            </Popup>
        </StackPanel>

    </Grid>
</Grid>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...