निम्न XAML के साथ जब आप चेकबॉक्स को अनचेक करते हैं तो नीचे की पंक्ति छिप जाती है। जब तक आप इसे ग्रिडप्लिटर के साथ आकार बदल नहीं लेते तब तक सब कुछ ठीक है। फिर चेकबॉक्स को चेक/अनचेक करना कुछ भी नहीं करता है। यह देखते हुए कि कनवर्टर ऊंचाई को 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
@ मैनुअल, मैंने कुछ ऐसा बनाया है जो मेरे लिए काम करता है। – Phil