Gridsplitter bir ızgarayı yeniden boyutlandırmak için kullanıldığında, satır * diğer satırlar daraltıldığında alanı geri almayacaktır.Yeniden boyutlandırıldıktan sonra WPF GridSplitter
Aşağıdaki ızgarayı üç satırlı ana ayrıntı görünümünde kullanıyorum. Ortadaki bir splitter ve son sırada bir contentcontrol görünümü üzerinde bir veri ızgarası. Ayırıcı, ayrıntıları daraltmak için üzerinde kapat düğmesi vardır. Tüm bunlar, kullanıcı bir kez gridsplitter kullanarak yeniden boyutlandırıldığında istisna ile çalışır.
<Grid Margin="3,0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Style="{StaticResource CollapsableRow}"/><!-- Splitter Here -->
<RowDefinition Style="{StaticResource CollapsableRow}"/>
</Grid.RowDefinitions>
GridSplitter stili:
<Style x:Key="gridSplitterStyle" TargetType="{x:Type GridSplitter}">
<Setter Property="Visibility" Value="{Binding IsItemSelected, Converter={StaticResource BoolToShow},ConverterParameter='Visible|Collapsed'}" />
<Setter Property="Width" Value="Auto"/>
<Setter Property="Height" Value="14"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Border.BorderBrush" Value="#FF6593CF" />
<Setter Property="Border.BorderThickness" Value="0,1,0,0" />
<Setter Property="UIElement.SnapsToDevicePixels" Value="True" />
<Setter Property="UIElement.Focusable" Value="False" />
<Setter Property="Control.Padding" Value="7,7,7,7" />
<Setter Property="Cursor" Value="SizeNS" /></Style>
Ben GridSplitter yeniden boyutlandırmak için kullanılmadığı sürece çöküşü düzgün çalıştığını söyledi gibi. Bundan sonra beyaz boşluk kalır.
EDIT: H.B. ve çok basit ve tutarlı öneriler vardı ve ben bir veri tetikleyici başarı w/o bunları uygulamaya teşebbüs codenaked: Eğer GridSplitter kullanırsanız
<Style x:Key="CollapsableRow" TargetType="{x:Type RowDefinition}">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem, Converter={StaticResource IsNullConverter}}" Value="True">
<Setter Property="RowDefinition.Height" Value="0"/>
</DataTrigger>
<DataTrigger Binding="{Binding SelectedItem, Converter={StaticResource IsNullConverter}}" Value="False">
<Setter Property="RowDefinition.Height" Value="Auto"/>
</DataTrigger>
</Style.Triggers>
</Style>
Koddaki ızgara uzunluğunun ayarlanması yapılması gereken işlemdir. Ancak bu durumda çift tıklama çalışmaz. Izgara ayırıcı, stil haline getiriliyor ve aslında splitter üzerinde kapanış yapan bir düğme. Izgara ayırıcıyı geçersiz kılmayı seçiyorum ve parent.hiegth'i orada ayarlıyorum. –
Kodum sadece bir örnekti, 'DoubleClick' üzerinde hiçbir şey yapmanıza asla beklemiyordum. –