2016-06-15 21 views
2

WindowStyle="None"を使用してカスタマイズしたメインウィンドウから起動するアプリケーションがあります。このため、タイトルバーの最大化/最小化ボタンを再実装する必要がありました。手動寸法調整までウィンドウを最大化できません

しかし、私はウィンドウが画面全体を満たすために最大化されないことを発見しました。むしろ、左上隅に「ドッキング」した後は、現在のサイズに等しいスペースだけを塗りつぶします。私は、どのような方法でも寸法を調整すると、窓を正しく最大にすることができることを発見しました(実際には、窓の端をクリックするだけです)。

どのように私は正確に最大化するために私のウィンドウを得ることができます知っていますか?ちょうどこの

<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" > 

そして、私の最大化ボタンがある:

はここに私のメインウィンドウのXAMLだあなたは上記の特性を保持する必要がある場合は

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

答えて

1

SizeToContent="WidthAndHeight"

を削除しますから、のみウィンドウが最大化されていないときは本当に必要です。

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

恐ろしい!これは間違いなく機能しますが、最大のバグを導入せずにプロパティを保持する方法はありますか?回答の本文に – fyodorfranz

+0

が追加されました – omerts

+0

最初にSizeToContent – omerts

関連する問題