2016-06-15 5 views
2

Ich habe eine Anwendung, die mit einem Hauptfenster startet, das ich mit WindowStyle="None" angepasst habe. Aus diesem Grund musste ich den Maximierungs-/Minimierungs-Button in der Titelleiste neu implementieren.Fenster nicht in der Lage zu maximieren, bis manuelle Dimensionseinstellung

Nachdem ich dies getan habe, habe ich jedoch festgestellt, dass das Fenster nicht maximiert, um den gesamten Bildschirm zu füllen. Stattdessen füllt es nur einen Bereich, der der aktuellen Größe entspricht, nachdem es in der oberen linken Ecke "angedockt" wurde. Ich habe dann entdeckt, dass ich das Fenster richtig vergrößern kann, wenn ich die Dimensionen in irgendeiner Weise anpasse (in der Tat, genügt es, auf den Rand des Fensters zu klicken).

Weiß jemand, wie ich mein Fenster richtig vergrößern kann, ohne eine manuelle Anpassung an seine Abmessungen vorzunehmen?

Hier ist mein Haupt XAML Fenster:

<Window x:Class="cvma.MainWindow" Name="MainWindowName" 
     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" 
     xmlns:local="clr-namespace:cvma" UseLayoutRounding="True" 
     mc:Ignorable="d" TextOptions.TextFormattingMode="Display" SizeToContent="WidthAndHeight" 
     Title="Application" MinHeight="700" MinWidth="1200" WindowStyle="None" > 

Und meine Maximierungsschaltfläche nur das ist:

  if (this.WindowState == WindowState.Maximized) 
      { 
       this.WindowState = WindowState.Normal; 
      } 
      else 
      { 
       this.WindowState = WindowState.Maximized; 
      } 

Antwort

1

entfernen SizeToContent="WidthAndHeight"

Wenn Sie die oben genannten Eigenschaft beibehalten müssen, nur weil Sie brauche es wirklich, wenn das Fenster nicht maximiert ist:

if (this.WindowState == WindowState.Maximized) 
{ 
    this.SizeToContent = SizeToContent.WidthAndHeight; 
    this.WindowState = WindowState.Normal; 
} 
else 
{ 
    this.SizeToContent = SizeToContent.Manual; 
    this.WindowState = WindowState.Maximized; 
}  
+0

Super! Dies funktioniert definitiv, aber gibt es irgendeine Möglichkeit für mich, die Eigenschaft zu behalten, ohne den Maximierungsfehler einzuführen? – fyodorfranz

+0

hinzugefügt in der Antwort Körper – omerts

+0

Ich aktualisierte die Antwort erneut, um die Reihenfolge zu ändern, da Sie zuerst SizeToContent – omerts