Как расположить элементы управления WPF в Canvas в полноэкранном окне? - PullRequest
1 голос
/ 13 января 2020

В настоящее время я работаю над полноэкранным приложением WPF. Приложение переходит в полноэкранный режим при событии Window_Loaded.

Внутри окна у меня есть Canvas. Внутри холста у меня есть MediaElement и 3 изображения. Вот XAML:

<Window x:Class="Test_CS4.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:Test_CS4"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded" AllowDrop="True" Background="Black">
    <Canvas x:Name="myCanvas" HorizontalAlignment="Center" VerticalAlignment="Center" UseLayoutRounding="True" >
        <MediaElement x:Name="mediaElement1" MediaEnded="mediaElement_OnMediaEnded" Canvas.ZIndex="1" Height="390" VerticalAlignment="Center" MouseLeftButtonDown="mediaElement1_MouseLeftButtonDown_1" HorizontalAlignment="Center" Width="767" Canvas.Left="-384" Canvas.Top="-190"/>
        <Image x:Name="image1" Canvas.ZIndex="2" Height="390"  Width="791" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Left="-795" Canvas.Top="-392" />
        <Image x:Name="checkImg" HorizontalAlignment="Left" Height="54" Margin="50,196,0,0" VerticalAlignment="Top" Width="67"/>
        <Image x:Name="crossImg" Height="54" Margin="0,196,663,0" VerticalAlignment="Top" MouseLeftButtonDown="crossImg_MouseLeftButtonDown" HorizontalAlignment="Right" Width="67"/>
    </Canvas>

</Window>

Проблема

Когда я запускаю приложение, холст не может обновляться и помещаться на весь экран. Поэтому, когда я пытаюсь установить положение для изображений (например, с помощью Canvas.SetLeft (this.crossImg, 0);), создается впечатление, что холст фактически перемещается, когда окно становится полноэкранным.

Мне нужно установите "координаты xy" изображений и измените их соответственно. Я пробовал с сеткой, но она не позволяет мне наложить изображение поверх MediaElement, поэтому я получаю, что холст путь к go.

Вопрос

Как я могу изменить размер холста, чтобы он соответствовал окну программно, когда окно переходит в полноэкранный режим?

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