Как сделать фиксированное соотношение сторон страницы UWP - PullRequest
0 голосов
/ 27 марта 2020

Я создаю страницу UWP и надеюсь исправить ее соотношение сторон (значение ширины / длины), когда пользователь изменяет размер страницы. Я использовал приведенные ниже коды, но соотношение сторон еще не зафиксировано.

    public List1()
    {
        this.InitializeComponent();

        this.SizeChanged -= List1_SizeChanged;
        this.SizeChanged += List1_SizeChanged;
    }

    private void List1_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        this.Height = this.ActualWidth * 1080/1920;
        this.MaxHeight = this.Height;
        this.MinHeight = this.Height;
    }

Как это сделать тогда?

1 Ответ

0 голосов
/ 27 марта 2020

Работает через привязку функции:

XAML

<Page
    x:Class="aspectresize.MainPage"
    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"
    mc:Ignorable="d"

    Width="500" 
    Height="{x:Bind GetAspectHeight(Width), Mode=OneWay}"
    Background="Lime"/>

Код позади

using Windows.UI.Xaml.Controls;

namespace aspectresize
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
            => InitializeComponent();

        private double GetAspectHeight(double width)
            => width * (1080d / 1920);
    }
}

Во время работы попробуйте изменить страницу Width в XAML. Это должно изменить высоту соответственно.

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