private void BtnMinimize(object sender, RoutedEventArgs args)
{
if (UserWindow.AppWindow.Presenter is OverlappedPresenter presenter)
{
presenter.Minimize();
}
}
private void BtnMaximize(object sender, RoutedEventArgs args)
{
if (UserWindow.AppWindow.Presenter is OverlappedPresenter presenter)
{
if (presenter.State == OverlappedPresenterState.Restored)
{
presenter.Maximize();
presenter.IsMaximizable = false;
var workArea = DisplayArea.GetFromWindowId(userWindow.AppWindow.Id, DisplayAreaFallback.Primary).WorkArea;
UserWindow.AppWindow.MoveAndResize(new Windows.Graphics.RectInt32(workArea.X, workArea.Y, workArea.Width, workArea.Height));
}
else
{
presenter.Restore();
presenter.IsMaximizable = true;
}
}
}
private void BtnClose(object sender, RoutedEventArgs args)
{
Application.Current.Exit();
// YourWindow.Close() also does the same, but I recommend using Exit().
}
Don't forget to rename UserWindow
to the name of your window.
I personally don't like my maximize method because it's too long. However, I don't know a shorter way to maximize the window without covering the taskbar. If anyone can post a better solution here, I would be grateful :)