wpf按钮折叠/展开动作
问题描述:
首先,让我说我是一个业余爱好者,当谈到wpf。我正在尝试为一个wpf按钮创建一个collapsing/expanding类型的动作,这意味着当用户单击一个按钮时,我希望选中该按钮来展开它下面的新按钮列表。这意味着成为支持Web的应用程序的导航类型。我还想在打开的列表上再次按下按钮时创建折叠交互。wpf按钮折叠/展开动作
答
只需使用ToggleButton
,并将该部分的可见性与IsChecked
状态绑定(通常在Expander
控件中完成)(您当然也可以使用它)。
答
我的第一个想法是使用ToggleButton并将其IsChecked属性绑定到要显示的元素的可见性。您需要一个转换器,然后将布尔检查值转换为可见性值。下面是一个例子:
<Grid>
<Grid.Resources>
<BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</Grid.Ressources>
<ToggleButton x:Name="toggleButton" Content="Toggle" />
<Grid Visibility={Binding IsChecked, ElementName=toggleButton, Converter={StaticResource BoolToVisibilityConverter}}>
<!-- place your content here -->
</Grid>
</Grid>
该转换器是一个类implementig IValueConverter
:
public class BoolToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool i = value is bool ? (bool) value : false;
return i ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}