WPF按钮的折叠/展开功能

3

首先,让我声明一下,我在wpf方面是个业余爱好者。我正在尝试为一个wpf按钮创建可折叠/展开类型的操作,这意味着当用户点击按钮时,我希望所选按钮能够展开一个新的按钮列表。这是为web应用程序设计的导航类型。当打开列表后再次按下按钮时,我还想创建一个折叠交互。

3个回答

5

在WPF中有一个名为Expander的默认控件。如果您想更改外观或动画,可以查看WPF的模板和样式。默认情况下,此控件应满足您的大多数要求。


2

我的第一个想法是使用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();
    }
}

1
只需使用一个 ToggleButton,并将该部分的可见性绑定到其IsChecked状态,就像在Expander控件中通常所做的那样(当然你也可以直接使用它)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接