다음 XAML에서는 확인란을 선택 취소 할 때 맨 아래 줄이 숨겨집니다. 그리드 스플리터로 크기를 조정할 때까지 모든 것이 잘됩니다. 그런 다음 확인란을 선택/선택 취소해도 아무런 변화가 없습니다. 변환기가 Height를 0으로 설정하면 행을 숨길 것으로 예상됩니다. 무슨 일이야? 스플리터를 움직여서 높이를 재설정하려면 어떻게해야합니까?스플리터를 사용한 후 그리드 행 높이를 재설정하는 방법은 무엇입니까?
<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>
변환기 :
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();
}
}
예를 들려 줄 수 있습니까? 나는 그것을 작동하게 만들 수 없다. – Manuel
@Manuel, 나는 나를 위해 뭔가를 만들었습니다. – Phil