У нас есть всплывающее окно в нашем приложении, которое отлично работает на всех наших установках с разными разрешениями экрана (от 1600x900, свыше 1920x1080 до 4K).Также он отлично работает с различными масштабами текста (от 100% до 300%).Однако на одной из машин размещение всплывающих окон полностью искажено.Вместо того чтобы размещать его относительно верхней левой позиции родительского элемента управления, он располагается слева от него слева?Рассматриваемый компьютер - это Lenovo Yoga Pro 2 с Windows 10.
Вот как всплывающее окно отображается в Viusal Studio Designer:
На всех Windows 10& Всплывающее окно 7 машин расположено в 0,0 (вверху, слева) относительно кнопки, и это очень хорошо:
HОднако, когда я запускаюПриложение на Lenovo Yoga 2 Pro полностью искажается и перемещается по левой стороне кнопки ?!Как это возможно, если мы установили относительное размещение, а горизонтальное и вертикальное смещение равны 0?
А вот код:
<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>