繁体   English   中英

使用wpf按钮折叠/扩展操作

[英]Collapsing/expanding action with wpf buttons

首先,让我说一下wpf的业余爱好者。 我正在尝试为wpf按钮创建折叠/展开类型操作,这意味着当用户单击按钮时,我希望选择该按钮以展开其下方的新按钮列表。 这应该是启用Web的应用程序的导航类型。 我还想在打开的列表上再次按下按钮时创建折叠交互。

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

只需使用ToggleButton并将该部分的可见性绑定到其IsChecked状态,就像在Expander控件中一样(当然您可以使用它)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM