/ / Perché i miei controlli WPF non si ridimensionano quando la finestra viene ingrandita toccando la parte superiore dello schermo in Windows 7? - wpf, wpf-controls, grid, ridimensiona, massimizza

Perché i miei controlli WPF non vengono scalati quando la finestra viene ingrandita toccando la parte superiore dello schermo in Windows 7? - wpf, wpf-controls, grid, ridimensiona, massimizza

Ho una finestra senza bordi creata per il mio WPFapplicazione. Si ridimensiona perfettamente sui lati e sugli angoli e anche quando lo trascino verso il lato sinistro o destro dello schermo si adatta perfettamente per adattarsi alla metà dello schermo. Se utilizzo un pulsante o un altro evento di controllo per massimizzare la finestra, funziona perfettamente. Tuttavia, quando trascino la finestra nella parte superiore dello schermo, la finestra effettiva si ingrandisce ma la griglia al suo interno non lo fa.

Ho impostato per chiamare un metodo suevento sizeChanged che imposta la dimensione della griglia relativa alla finestra (riempie l'intera finestra tranne 10 pixel su ciascun bordo). All'inizio pensavo che l'evento sizeChanged non stia funzionando, quindi ho creato un thread per rilevare solo se il windowState è stato massimizzato.Al momento del rilevamento avrebbe semplicemente eseguito il metodo per ridimensionare la griglia.Il metodo è stato eseguito, ma la dimensione della griglia non ha funzionato " t cambiare. Solo questo metodo di massimizzazione è un problema.

Come posso risolvere questo problema?

Modifica: 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>

Uso anche uno stile e un tema nella mia applicazione, ma questo problema si verifica anche quando non sono coinvolti, quindi non li ho inclusi nello XAML

risposte:

0 per risposta № 1

Una soluzione che puoi provare è mettere VerticalAlignment = "Stretch" e HorizontalAlignment = "Stretch" sul controllo della griglia

Un'altra soluzione è usare e.NewSize.Width e e.NewSize.Height per calcolare l'altezza e la larghezza della griglia sul gestore di eventi SizeChanged di Window.