首先,让我说一下wpf的业余爱好者。我正在尝试为wpf按钮创建折叠/展开类型操作,这意味着当用户单击按钮时,我希望选择该按钮以展开其下方的新按钮列表。这应该是启用Web的应用程序的导航类型。我还想在打开的列表上再次按下按钮时创建折叠交互。
答案 0 :(得分:4)
WPF中有一个默认控件,名为Expander。如果要更改外观或动画,可以查看WPF的模板和样式。默认情况下,此控件应满足您的大部分要求。
答案 1 :(得分:1)
只需使用ToggleButton
并将该部分的可见性绑定到IsChecked
状态,就像Expander
控件中通常所做的那样(当然您可以使用它)。
答案 2 :(得分:1)
我的第一个想法是使用ToggleButton并将其IsChecked属性绑定到要显示的元素的可见性。您需要转换器然后将布尔值Checked值转换为Visibility值。这是一个例子:
<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>
转换器是一个类实现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();
}
}