Как мне настроить страницу UWP, чтобы она имела постоянную ширину и высоту при запуске? - PullRequest
0 голосов
/ 16 января 2019

Я создаю приложение UWP с использованием C ++ и XAML.Как настроить постоянную ширину и высоту приложения?

Я совершенно новичок в XAML и хочу создать приложение UWP с использованием C ++ / WinRT.Я установил ширину страницы на 500 и высоту на 200, но если я изменю размер страницы во время выполнения, а затем перезапущу приложение, размер страницы все равно будет изменен.Например, если я изменяю ширину и высоту страницы слишком на 1000 во время выполнения (используя мой курсор для перетаскивания страницы), когда я затем перезапускаю приложение, ширина и высота страницы все равно будет 1000.

Вот мойmain.cpp:

#include "pch.h"

using namespace winrt;

using namespace Windows::ApplicationModel;
using namespace Windows::ApplicationModel::Activation;
using namespace Windows::Foundation;
using namespace Windows::Storage;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Markup;

struct App : ApplicationT<App> {
    fire_and_forget OnLaunched(const LaunchActivatedEventArgs&) {
        const auto packageFolder = Package::Current().InstalledLocation();
        const auto file = co_await packageFolder.GetFileAsync(L"MainPage.xaml");
        const auto xaml = co_await FileIO::ReadTextAsync(file);

        const auto body = XamlReader::Load(xaml).as<Page>();

        auto window = Window::Current();
        window.Content(body);
        window.Activate();
    }
};

int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int) {
    Application::Start([](auto&&) {make<App>(); });
}

А вот мой MainPage.xaml:

<Page
 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"
 Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" 
 Width="500" Height="200">

<Grid HorizontalAlignment="Stretch" Margin="0,0,408,0" 
VerticalAlignment="Stretch"/>
</Page>

Я бы хотел, чтобы приложение восстанавливало свой размер каждый раз при запуске приложения.Поэтому ширина всегда должна быть 500, а высота всегда должна быть 200 при запуске.Я понятия не имею, почему это происходит, так как я совершенно новичок в этом, поэтому любая помощь будет оценена.

Спасибо.

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

1 Ответ

0 голосов
/ 17 января 2019

Приложения UWP не только запускаются на рабочем столе, но и на планшете, телефоне и т. Д. Итак, то, что вы хотите установить страницу фиксированного размера, нереально. Но вы можете вызвать метод ApplicationView.TryResizeView (Size) , чтобы изменить размер представления.

Если вы все еще хотите иметь фиксированный размер страницы во время выполнения, вы можете обработать событие SizeChanged страницы, в его обработчике событий вы можете вызвать метод ApplicationView.TryResizeView, чтобы изменить его размер до исходного размера.

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