Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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,我在窗口中添加了一些控件和选项卡控件。现在,我想在任何用户按下tabItem2时隐藏控件,例如,对于每个tabItem,我需要显示一些控件,并且隐藏一些控件。如何继续此类型的功能?只需在TabControl中声明控件即可 <TabControl> <TabItem> <Button x:Name="Button1"/> </TabItem> <TabItem> <Button

我在窗口中添加了一些控件和选项卡控件。现在,我想在任何用户按下tabItem2时隐藏控件,例如,对于每个tabItem,我需要显示一些控件,并且隐藏一些控件。如何继续此类型的功能?

只需在TabControl中声明控件即可

<TabControl>
    <TabItem>
        <Button x:Name="Button1"/>
    </TabItem>
    <TabItem>
        <Button/>
    </TabItem>
</TabControl>

澄清:您的意思是,对于您按下的每个tabitem,您希望看到一组不同的tabitems吗?如果是这样,我建议将该功能包装在UserControl中,并提供“set”逻辑作为该控件代码隐藏的一部分。

您可以将控件的可见性绑定到选项卡控件的选定项。使用
IValueConverter
获取适当的
可视性值。请添加注释why-1.-1。不要操纵代码中的uielements。这不是winforms。这种方法在WPF中非常糟糕,因为它在XAML定义的元素和(完全不必要的)C#代码之间产生了紧密耦合。我不知道yug想要隐藏一些控件的原因。但因为他写道,这些控件的可见性取决于激活的选项卡,所以在我看来,这可能是一个UI问题。您可以在代码隐藏中处理UI。在我看来,仅仅因为是WPF、XAML或MVVM而不编写操纵ui元素的代码不是正确的方法。。。
void OnTabControlSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Button1.Visibility = Visibility.Collapsed;
}