WPF 中 Visibility.Collapsed 与 Visibility.Hidden 区别

区别

Visibility.Hidden 虽隐藏了控件,但保留了它在布局中占用的空间;
Visibilty.Collapsed 既不呈现控件,也不保留空间。

事实上呢,Collapsed也有非常大的用处,hidden仅仅将元素设为不可视,但是元素在画面上依然将占有空间,而Collapsed的话,在不可视的基础上,还能将元素在画面上的占位符清除,元素彻底不影响画面.所以,某些时候可能用Collapsed更为合理.在做一个StackPanel的时候最明显,三个对象在StackPanel中的时候,中间的对象如果Hidden,还将占有Stack中的位置,而Collapsed的话,下面的对象就会挤上了(有点像DIV了…)

参考

Visible Hidden与Collapsed

WPF中Visibility属性值Hidden与Collapsed的比较

关于WPF Control.Visibility 的一些体会

Visibility Enum (System.Windows)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
WPF,可以使用绑定来动态地设置UI元素的可见性。 可见性是一个枚举类型,包含三个值:Visible、Collapsed和Hidden。当一个元素被设置为Collapsed时,它将不会被渲染并且不会占用空间,而当一个元素被设置为Hidden时,它将不会被渲染,但是会占用空间。 下面是一个简单的示例,展示如何使用绑定来设置元素的可见性: 在XAML,定义一个元素: ``` <TextBlock Text="Hello, world!" Visibility="{Binding IsVisible, Converter={StaticResource BoolToVisibilityConverter}}" /> ``` 在ViewModel,定义一个属性: ``` private bool _isVisible; public bool IsVisible { get { return _isVisible; } set { _isVisible = value; OnPropertyChanged("IsVisible"); } } ``` 在Converter,将bool类型的值转换为Visibility类型的值: ``` public class BoolToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool isVisible = (bool)value; return isVisible ? Visibility.Visible : Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { Visibility visibility = (Visibility)value; return visibility == Visibility.Visible; } } ``` 这个例子,我们将IsVisible属性绑定到TextBlock元素的Visibility属性上,并使用BoolToVisibilityConverter将bool类型的值转换为Visibility类型的值。当IsVisible属性的值为true时,TextBlock元素将会显示出来;当IsVisible属性的值为false时,TextBlock元素将会被隐藏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值