Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF中隐藏按钮_Wpf - Fatal编程技术网

在WPF中隐藏按钮

在WPF中隐藏按钮,wpf,Wpf,我想在Windows窗体中使用的WPF中隐藏一个按钮,例如,button.visible=false WPF中是否有与此等效的文件 Visibility=Hidden您应该设置 button.visibility=System.Windows.visibility.Hidden 或 button.visibility=System.Windows.visibility.Collapsed 或者通过使用WPF XAML属性设置相同…尝试以下方法之一: button.Visibility = Vis

我想在Windows窗体中使用的WPF中隐藏一个按钮,例如,
button.visible=false


WPF中是否有与此等效的文件

Visibility=Hidden
您应该设置

button.visibility=System.Windows.visibility.Hidden

button.visibility=System.Windows.visibility.Collapsed

或者通过使用WPF XAML属性设置相同…

尝试以下方法之一:

button.Visibility = Visibility.Hidden;
button.Visibility = Visibility.Collapsed;

Hidden
隐藏按钮,但按钮仍会占用UI中的空间<代码>折叠将折叠按钮,使其宽度和高度为零。

如果使用MVVM设计模式,可以利用绑定到按钮的命令的“CanExecute”状态来实现此目的

按钮的默认行为将显示为禁用,但您可以使用下面的示例更改它,使其不可见


视图模型

命令属性的属性:

public DelegateCommand<TypeOfBoundItem> TheCommand
{
    get; private set;
}

查看

在UserControl或Window的资源中,您定义了一些Visibility转换器:

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>


对于按钮,您可以定义一个绑定设置,将按钮的“可见性”属性绑定到按钮“IsEnabled”状态的值,并应用转换器

因此,如果“IsEnabled”状态为true-因为绑定的“TheCommand”在其“CanExecute”方法中返回true-按钮将可见

<Button Command="{Binding TheCommand}"
        CommandParameter="{Binding}"
        Visibility="{Binding RelativeSource={RelativeSource Self},
                             Path=IsEnabled,
                             UpdateSourceTrigger=PropertyChanged,
                             Converter={StaticResource BooleanToVisibilityConverter}}">
</Button>
如果绑定命令的“CanExecute”方法返回false,则按钮将不可见

<Button Command="{Binding TheCommand}"
        CommandParameter="{Binding}"
        Visibility="{Binding RelativeSource={RelativeSource Self},
                             Path=IsEnabled,
                             UpdateSourceTrigger=PropertyChanged,
                             Converter={StaticResource BooleanToVisibilityConverter}}">
</Button>


请注意,如果使用数据绑定,则需要编写将bool转换为可见性值的ValueConverter。请注意,如果使用数据绑定,则需要编写将bool转换为可见性值的ValueConverter。此类转换器已经存在。要取消隐藏它,请使用
button.Visibility=Visibility.Visibility
@Jakob,我在button click事件中使用了您的代码,但当我单击按钮时,它就变成了代码(我在那里放置了断点)。而且回来以后也没有什么变化。简言之,通过提供这样的可视性,在返回设计后没有任何更改。。。
<Button Command="{Binding TheCommand}"
        CommandParameter="{Binding}"
        Visibility="{Binding RelativeSource={RelativeSource Self},
                             Path=IsEnabled,
                             UpdateSourceTrigger=PropertyChanged,
                             Converter={StaticResource BooleanToVisibilityConverter}}">
</Button>