Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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_User Interface_Xaml_Controls - Fatal编程技术网

在WPF控件之间切换

在WPF控件之间切换,wpf,user-interface,xaml,controls,Wpf,User Interface,Xaml,Controls,在WPF/XAML中是否有一种简单的方法可以在面板中相同位置的两种控件之间切换?我想知道除了切换可视性是否还有其他选择 在我的应用程序中,我有几个用于配置位字段的复选框(这些复选框用于打开或关闭单个位)。有时,如果用户能够在文本框中输入实际字段值(例如,如果选中前两个复选框,则输入0x03),则会更容易 由于布局限制,我不希望复选框和文本框同时可见。我想提供一个单选按钮,允许他选择要用于编辑值的“视图”。您可以将两种输入方式(复选框/文本框)放在同一位置,方法是将它们都放在面板(例如StackP

在WPF/XAML中是否有一种简单的方法可以在面板中相同位置的两种控件之间切换?我想知道除了切换可视性是否还有其他选择

在我的应用程序中,我有几个用于配置位字段的复选框(这些复选框用于打开或关闭单个位)。有时,如果用户能够在文本框中输入实际字段值(例如,如果选中前两个复选框,则输入0x03),则会更容易


由于布局限制,我不希望复选框和文本框同时可见。我想提供一个单选按钮,允许他选择要用于编辑值的“视图”。

您可以将两种输入方式(复选框/文本框)放在同一位置,方法是将它们都放在面板(例如StackPanel)中,并将复选框集或文本框的可见性设置为折叠

有几种方法可以实现这一点,但我更喜欢的方法是将复选框和文本框数据绑定到它们各自的RadioButton的IsChecked属性,并使用IValueConverter在boolean和Visibility属性之间进行转换


HTH.

用作占位符。您可以通过编程方式设置ContentControl.Content。

创建自定义控件或用户控件。这正是wpf最擅长的。你能详细说明一下吗?我会将复选框和文本框放在用户控件中,并提供一个在两者之间切换的公共方法吗?在内部,切换是否会改变可见性或其他?如何使此自定义用户控件成为通用控件,以便指定在每个模式下,自定义用户控件的每个实例中应显示哪些类型的控件?根据Ray下面的回答,如果您使用MVPM或类似的体系结构,另一种方法是通过ContentControl+DataTemplates(或视图)实现这一点。您必须创建一个PM或至少INotifyPropertyChanged/DependencyProperty来处理切换,但这是可行的。您不希望这样做——至少将ContentControl.Content设置为FrameworkElement。如果使用ContentControl路径,最好使用DataTemplates,而不是在Content属性中动态交换UI。