Aşağıdaki XAML ile onay kutusunun işaretini kaldırdığınızda alt satır gizlenir. Gridsplitter ile yeniden boyutlandırana kadar her şey iyi. Ardından onay kutusunu işaretleyin/işaretini kaldırın hiçbir şey yapmaz. Dönüştürücünün Yüksekliği 0'a ayarladığı göz önüne alındığında, satırın gizlenmesini bekledim. Neler oluyor? Ayırıcıyı taşıdıktan sonra yükseklikleri nasıl sıfırlayabilirim?Bölücü kullandıktan sonra ızgara sırası yüksekliği nasıl sıfırlanır?
<Grid>
<Grid.Resources>
<m:CheckedToLengthConverter x:Key="checkedToLengthConverter" />
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="{Binding Mode=OneWay, ElementName=ShowBottomCheckBox, Path=IsChecked, Converter={StaticResource checkedToLengthConverter}, ConverterParameter=2}" />
</Grid.RowDefinitions>
<Border Background="Blue" />
<CheckBox Name="ShowBottomCheckBox" IsChecked="True" />
<GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="5" />
<Border Background="Red" Grid.Row="1" />
</Grid>
Dönüştürücü:
public class CheckedToLengthConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((bool)value)
return new GridLength(int.Parse(parameter.ToString()), GridUnitType.Star);
return new GridLength(0, GridUnitType.Pixel);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Bir örnek verebilir misiniz? Çalışamıyorum. – Manuel
@Manuel, Benim için çalışan bir şey yarattım. – Phil