Я читал много билетов здесь и на других форумах по этой проблеме. Ни одному из них не удалось мне помочь.
Что мне нужно, так это просто - при первом запуске приложения мне нужно, чтобы приложение запускалось в развернутом окне (но НЕ в полноэкранном режиме). В любом другом случае я хочу, чтобы размер приложения автоматически изменялся (это последний размер, с которым оно было закрыто).
Здесь: https://docs.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.applicationview.preferredlaunchwindowingmode?view=winrt-18362
.. сказано, что: Для самого первого запуска приложения PreferredLaunchWindowingMode всегда будет Auto, а ApplicationView.PreferredLaunchViewSize будет определяться системными политиками. API применяется к следующему запуску приложения.
К сожалению, это происходит каждый раз, когда PreferredLaunchWindowingMode имеет значение Auto. Это означает, что я никогда не смогу переключиться с Auto на PreferredLaunchViewSize в области моего текущего сеанса.
Когда PreferredLaunchWindowingMode имеет значение Auto, , ни ApplicationView.PreferredLaunchViewSize, ни ApplicationView.GetForCurrentView (). TryResizeView (). размер) работа. Они запускаются с правильным размером, но они ничего не меняют.
Мне нужна альтернатива, которая фактически изменит размер моего окна без секретных зависимостей и принудительного поведения.
Мой текущий код:
App.xaml.cs:
protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
if (true/*SystemInformation.IsFirstRun*/)
{
var displayInfo = DisplayInformation.GetForCurrentView();
Size displaySize = new Size(displayInfo.ScreenWidthInRawPixels, displayInfo.ScreenHeightInRawPixels);
ApplicationView.PreferredLaunchViewSize = displaySize;
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
ApplicationView.GetForCurrentView().SetPreferredMinSize(displaySize); // This DOESN'T work on first launch
}
else
{
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.Auto; // This does not get called, because I don't need it yet. When maximizing works, I will run this row for subsequent startups.
}
...
}
MainView.xaml:
private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
{
var displayInfo = DisplayInformation.GetForCurrentView();
Size size = new Size(displayInfo.ScreenWidthInRawPixels, displayInfo.ScreenHeightInRawPixels);
var appView = ApplicationView.GetForCurrentView();
appView.TryResizeView(size);
...
}
Я пытался изменить PreferredLaunchWindowingMode до / после InitializeComponent. Я также пытался переместить фрагмент app.xaml.cs в другие места моего метода OnLaunched. Он никогда не работает, когда Mode - Auto, всегда работал, когда Mode был PreferredLaunchViewSize.
Заранее спасибо!