2

WPF アプリケーション用にボーダレス ウィンドウを作成しました。側面と角で完全にサイズ変更され、画面の左側または右側にドラッグすると、画面の半分に合わせて完全に拡大縮小されます。ボタンまたはその他のコントロール イベントを使用してウィンドウを最大化すると、完全に機能します。ただし、ウィンドウを画面の上部にドラッグすると、実際のウィンドウは最大化されますが、ウィンドウ内のグリッドは最大化されません。

ウィンドウに対するグリッドのサイズを設定する sizeChanged イベントでメソッドを呼び出すように設定しました (各エッジの 10 ピクセルを除くウィンドウ全体を埋めます)。最初は、sizeChanged イベントが発生していないと思ったので、windowState が最大化されているかどうかを検出するためのスレッドを作成しました。検出されると、メソッドを実行してグリッドのサイズを大きくします。メソッドは実行されましたが、グリッド サイズは変わりませんでした。この最大化方法だけが問題です。

この問題を解決するにはどうすればよいですか?

編集:XAML

 <Window.Background>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FF868686" Offset="0" />
        <GradientStop Color="Black" Offset="1" />
    </LinearGradientBrush>
</Window.Background>
<Grid Background="{x:Null}" Name="baseGrid">
    <Grid Height="342" HorizontalAlignment="Stretch" Name="grid1" VerticalAlignment="Stretch" Width="718" Background="#46BA0000">
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="6,6,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="maximize" />
    </Grid>
</Grid>

アプリケーションでスタイルとテーマも使用していますが、この問題はそれらが関係していない場合でも発生するため、XAML に含めませんでした

4

1 に答える 1

1

試すことができる 1 つの解決策は、グリッド コントロールに VerticalAlignment="Stretch" および Horizo​​ntalAlignment="Stretch" を配置することです。

他の解決策は、e.NewSize.Width と e.NewSize.Height を使用して、ウィンドウの SizeChanged イベント ハンドラーでグリッドの高さと幅を計算することです。

于 2011-10-18T06:06:16.103 に答える