C# 如何隐藏面板?
!!我正在使用Wpf。我想显示两个面板,如果一个是可见的,另一个应该隐藏。两者应在同一边缘。下图将详细解释我的问题 谢谢, 安妮C# 如何隐藏面板?,c#,.net,wpf,C#,.net,Wpf,!!我正在使用Wpf。我想显示两个面板,如果一个是可见的,另一个应该隐藏。两者应在同一边缘。下图将详细解释我的问题 谢谢, 安妮 有人能告诉我如何编写代码吗?代码非常简单: Panel1.Visibility = System.Windows.Visibility.Hidden; Panel2.Visibility = System.Windows.Visibility.Visible; 假设您使用的是MVVM模式,请尝试此操作 使用2个公共属性bool绑定堆栈面板的可见性。在这两个控件的se
有人能告诉我如何编写代码吗?代码非常简单:
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而不是折叠的结果。这里有一个合适的选择吗?问题中的图纸看起来不像其他面板的空间应该保留。