如何在WPF Expander中隐藏标题?

时间:2011-01-18 19:37:23

标签: c# wpf

我有一个业务要求,当用户单击WPF应用程序中的一系列复选框时,它将根据所选的复选框显示面板。我想使用扩展器面板,但我不知道如何隐藏标头。除非他们选中复选框,否则不应允许用户查看它。有谁知道吗?

3 个答案:

答案 0 :(得分:4)

您可以通过制作自定义Style for your Expander来完成此操作。

但是,将控件放在不同的面板中可能更容易,并将其可见性设置为Collapsed以响应复选框状态。使用Expander的主要原因是具有标题和控件。

答案 1 :(得分:2)

虽然不是理想的方法,但你可以走这条路......

    <Expander>
        <Expander.Header>
            <TextBlock Visibility="{Binding IsExpanded, RelativeSource={RelativeSource AncestorType={x:Type Expander}, Mode=FindAncestor}, 
                 Converter={StaticResource BoolToVisibilityConverter}}">My Expander</TextBlock>
        </Expander.Header>
    </Expander>

...其中BoolToVisibilityConverter类似......

    public class BoolToVisibilityConverter : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if ((bool)value)
                return Visibility.Visible;
            return Visibility.Collapsed;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if ((Visibility)value == Visibility.Visible)
                return true;
            return false;
        }

        #endregion
    }

答案 2 :(得分:0)

这个答案包含了您所需要的一切:WPF Expander Button Styled so it is inside Expander Header

如果您使用他提及的样式并且没有设置标题内容,则标题会消失