我想在Windows窗体中使用的WPF中隐藏按钮,例如button.visible=false
WPF中是否有相应的内容?
答案 0 :(得分:49)
尝试以下方法之一:
button.Visibility = Visibility.Hidden;
button.Visibility = Visibility.Collapsed;
Hidden
隐藏了按钮,但按钮仍会占用UI中的空间。 Collapsed
会折叠按钮,使其宽度和高度为零。
答案 1 :(得分:13)
你应该设置
button.visibility = System.Windows.Visibility.Hidden;
或
button.visibility = System.Windows.Visibility.Collapsed;
或通过使用WPF XAML属性设置相同的...
答案 2 :(得分:4)
Visibility = Hidden
答案 3 :(得分:0)
如果使用MVVM设计模式,则可以利用绑定到按钮的命令的“ CanExecute”状态来实现此目的。
该按钮的默认行为将被禁用,但您可以更改此设置,以使它在下面的示例中不可见。
ViewModel
命令属性:
public DelegateCommand<TypeOfBoundItem> TheCommand
{
get; private set;
}
实例化命令(在视图模型的构造函数中):
TheCommand = new DelegateCommand<TypeOfBoundItem>( Execute, CanExecute );
执行命令并确定是否可以执行的方法:
private bool CanExecute( TypeOfBoundItem item )
{
return true or return false;
}
private bool Execute()
{
// some logic
}
查看
在UserControl或Window的资源中,您定义了一些可见性转换器:
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
对于按钮,您将应用转换器来定义将按钮的“可见性”属性设置为按钮“ IsEnabled”状态的值的绑定。
因此,如果“ IsEnabled”状态为true-因为绑定的“ TheCommand”在其“ CanExecute”方法中返回true-该按钮将可见。
如果绑定命令的“ CanExecute”方法返回false,则该按钮将不可见。
<Button Command="{Binding TheCommand}"
CommandParameter="{Binding}"
Visibility="{Binding RelativeSource={RelativeSource Self},
Path=IsEnabled,
UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource BooleanToVisibilityConverter}}">
</Button>