我有一个业务要求,当用户单击WPF应用程序中的一系列复选框时,它将根据所选的复选框显示面板。我想使用扩展器面板,但我不知道如何隐藏标头。除非他们选中复选框,否则不应允许用户查看它。有谁知道吗?
答案 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
如果您使用他提及的样式并且没有设置标题内容,则标题会消失