我正在使用C ++和XAML创建UWP应用。如何将应用程序的宽度和高度设置为恒定?
我对XAML完全陌生,我想使用C ++ / WinRT创建一个UWP应用。我已将页面的宽度设置为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。我不知道为什么会这样,因为我是新手,所以将不胜感激。
谢谢。
另外,我希望在运行时页面的大小固定,这意味着页面将无法在运行时调整大小。
答案 0 :(得分:0)
UWP应用程序不仅可以在台式机上运行,而且还可以在平板电脑,手机等上运行。因此,要设置固定大小的页面是不现实的。但是您可以调用ApplicationView.TryResizeView(Size) Method来更改视图的大小。
如果在运行时仍需要页面的固定大小,则可以处理页面的byte
事件,在其事件处理程序中,可以调用byte
方法将其调整为原始大小。