Gridsplitters ile denemeye yeni başladım ve çok garip bir davranışa rastladım ve bunu düzeltmek mümkün görünmüyor. Görünüşe göre başkalarının da benzer sorunları var (google'a göre), ancak yararlı yorumlar yoktu.Gridsplitter: Satır yüksekliğini pencere boyutuna sınırla
2 satıra sahip bir ızgaram var. En baştaki satır ile Hight
vardır. Satırları ayırıcıyla yeniden boyutlandırdığımda, davranış en üst sırada beklendiği gibi olur. Fakat splitter'i yukarı ve program penceresini geçtiğimde, alt sıranın içeriği pencereden çıkar (= gitene kadar aşağı doğru hareket eder). Her satırın ana kapsayıcıdan daha büyük olamamasını beklerdim.
<Grid x:Name="grid_main" ScrollViewer.VerticalScrollBarVisibility="Disabled" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition MinHeight="250" Height="250"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GridSplitter x:Name="splitter"
ResizeDirection="Rows" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="0" Width="Auto"
Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="0" ResizeBehavior="BasedOnAlignment" />
<Grid Grid.Column="0" Grid.Row="0">
</Grid>
<Grid Grid.Column="0" Grid.Row="1">
</Grid>
</Grid>
Bu benim kodum. Her iki satırın içeriği yine ızgaralarda barındırılıyor ve sadelik uğruna ortadan kaldırıldı. Tekrar: Üst satır için yeniden boyutlandırma iyi çalışıyor. Ancak alt satır sonsuzluğa yeniden boyutlandırılabilir. MaxHeight
'u sabit kodladığım takdirde beklendiği gibi çalışır. Ama bu pencere büyüklüğüne bağlı olmalı.
Teşekkür: Ben de üst veya alt satırlarda MinHeight ayarlarsanız ben hâlâ sorun görüyordum rağmen Böylece aşağıdaki alt sıra tanımı, benim için çalıştı. Bu işe yarıyor. Ama en üst sıradaki “MinHeight” ın uygulanmasının zor olduğu kanıtlanıyor ... WPF ile uğraşırken, normalde sh * t'yi bunun dışında lanetliyorum ve bir noktada düşünmemi sağlayan gerçekten zarif bir çözüm var. WPF, her şeyden sonra gerçekten harika ". Bu konuda bu noktaya ulaşacağımdan emin değilim ... – Jan
Ne demek istediğini biliyorum, aynı şekilde çok fazla zaman hissediyorum. Üst sıra için bir MinHeight tanımlamak için bir çözüm var, zarif mi yoksa tartışmasız mı? Bir MultiValueConverter kullanırsanız, Grid'in ActualHeight'ı önceki gibi ve en üstteki MinHeight geçirebilir ve farkı döndürürsünüz. Bu değeri ikinci satırdaki maksimum yüksekliğiniz olarak kullanın. –
Ofset uygulamak için bir 'IValueConverter' kullandım. – Peter