Максимальное окно WPF больше экрана

При создании окна WPF с AllowsTransparency="True" WindowStyle="None" и максимизации его с помощью this.WindowState = WindowState.Maximized; окно становится больше, чем мой экран.

При настройке AllowTransparency="False" у меня есть граница вокруг моего окна, но окно не будет больше моего экрана.
В моем случае у меня есть экран 1920x1080, и окно становится 1934x1094.
На моем экране 1280x1024 окно станет 1294x1038.
Окно станет таким же большим, как и включен ли AllowTransparency или нет, но с его отключением он работает правильно.

Настройка AllowTransparency перед максимизацией работы doen't и выбрасывает InvalidOperationException.

Как получить окно WPF без рамки в стиле Windows, но все же максимально правильно?

Ответ 1

Это кажется довольно распространенной проблемой. Похоже, вам придется привязать свой рост и ширину к фактической высоте/ширине экрана, как указано в этой статье StackOverflow:

Приложение с окном без полей занимает больше места, чем разрешение экрана.

Я надеюсь, что решает проблему, с которой вы столкнулись.

Ответ 2

Пару лет this.borderthickness на вечеринку, но просто увеличьте this.borderthickness для события SizeChanged следующим образом:

<Window x:Class="MyApp.MainWindow"
    ResizeMode="CanResize" 
    WindowStyle="SingleBorderWindow"
    SizeChanged="Window_SizeChanged">
....
Code
....
</Window>


public void Window_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (this.WindowState == WindowState.Maximized)
        {
            this.BorderThickness = new System.Windows.Thickness(8);
        }
        else
        {
            this.BorderThickness = new System.Windows.Thickness(0);
        }
    }

Ответ 3

установите это свойство вашего окна.

 MinHeight="100"
  MinWidth="100"
  Height="auto"
  Width="auto" 

Надеюсь, что это сработает