Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
C# 如何隐藏面板?_C#_.net_Wpf - Fatal编程技术网

C# 如何隐藏面板?

C# 如何隐藏面板?,c#,.net,wpf,C#,.net,Wpf,!!我正在使用Wpf。我想显示两个面板,如果一个是可见的,另一个应该隐藏。两者应在同一边缘。下图将详细解释我的问题 谢谢, 安妮 有人能告诉我如何编写代码吗?代码非常简单: Panel1.Visibility = System.Windows.Visibility.Hidden; Panel2.Visibility = System.Windows.Visibility.Visible; 假设您使用的是MVVM模式,请尝试此操作 使用2个公共属性bool绑定堆栈面板的可见性。在这两个控件的se

!!我正在使用Wpf。我想显示两个面板,如果一个是可见的,另一个应该隐藏。两者应在同一边缘。下图将详细解释我的问题

谢谢, 安妮


有人能告诉我如何编写代码吗?

代码非常简单:

Panel1.Visibility = System.Windows.Visibility.Hidden;
Panel2.Visibility = System.Windows.Visibility.Visible;

假设您使用的是MVVM模式,请尝试此操作

使用2个公共属性bool绑定堆栈面板的可见性。在这两个控件的set属性上,检查其可见性是否为true,然后将其他控件的可见性设置为false

使用以下可见性转换器

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    bool bValue = (bool)value;
    if (bValue)
        return Visibility.Visible;
    else
        return Visibility.Collapsed;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
   bool bValue = (bool)value;
   if (bValue)
     return Visibility.Visible;
   else
     return Visibility.Collapsed;
}
在xaml上,应该将堆栈面板的可见性绑定为

Visibility="{Binding Panel1Visibility,Converter={StaticResource BoolToVisibilityConverter}}"

只需放置panel1.hide和panel2.show,我没有VS,所以应该是这样的

  <Button x:Name="ToggleButton" Click="ToggleButton_Click"></Button>



 private void ToggleButton_Click(object sender, RoutedEventArgs e)
        {
            if (Panel1.Visibility == System.Windows.Visibility.Visible)
            {
                Panel2.Visibility = System.Windows.Visibility.Visible;
                Panel1.Visibility = System.Windows.Visibility.Collapsed;
            }
            else
            {
                Panel2.Visibility = System.Windows.Visibility.Collapsed;
                Panel1.Visibility = System.Windows.Visibility.Visible;
            }
        }

试试这样的

        newButton.Click += (o, ev) =>
        { 
            panelA.Visibility = System.Windows.Visibility.Hidden;
            panelB.Visibility = System.Windows.Visibility.Visible;
        }
        closeButton.Click += (o, ev) =>
        {
            panelB.Visibility = System.Windows.Visibility.Hidden;
            panelA.Visibility = System.Windows.Visibility.Visible;
        };

使用此振动转换器

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    bool bValue = (bool)value;
    if (bValue)
        return Visibility.Visible;
    else
        return Visibility.Collapsed;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
   bool bValue = (bool)value;
   if (bValue)
     return Visibility.Visible;
   else
     return Visibility.Collapsed;
}

这是一个请求还是一个问题?有什么问题吗?你试过什么?什么失败了?尝试切换面板的b/w可见性…您尝试了什么?粘贴一些代码Annie,请了解WPF控件的类层次结构。面板是UIElement,因此继承了Visiblity属性。请参见。安妮,你尝试过什么?这在WPF中非常简单,但我们需要知道您是否尝试了一些东西,或者是否正在寻找更深入的解释。不是布尔值。是的,我知道。您必须为此编写转换器。Booleantovisibility转换器。您的答案应该提到,而不是说不可能将其他控件的可见性设置为false。使用此公共对象Convertobject value,键入targetType,对象参数,CultureInfo culture{bool bValue=boolvalue;if bValue返回visibility.Visible;else返回visibility.Collapsed;}我想现在答案很好。它是。?没有任何隐藏或显示方法。名称空间应该是System.Windows,不是吗?哦,我的错误,准确地说,是进入了Windows 8 app storeSystem.Windows.Visibility。现在可以了。我猜这是使用WinRT:pIs Hidden而不是折叠的结果。这里有一个合适的选择吗?问题中的图纸看起来不像其他面板的空间应该保留。