实际上,以下答案并不能解决我的目的。因此提出另一个问题。 How control re-position depends on other control visibility in same panel。 我在堆栈面板中有两个按钮。最初B1按钮位于顶部,然后是B2。
<Grid>
<StackPanel >
<Button Content="B1" Height="20" Width="100" Visibility="Visible"/>
<Button Content="B2" Height="20" Width="100" Visibility="Visible"/>
</StackPanel>
</Grid>
所以,使用这个XAML,当我打开应用程序时,我可以在UI中看到B1和B2按钮。 现在,实际上,如果我执行B1隐藏的可见性,则B2将采用B1按钮的位置,如果我执行B1的可见性&#34;可见&#34;,则在UI中, B1&amp; B2都将显示。如何实现这一功能?
答案 0 :(得分:1)
你可以使用Visibility.Collapsed按钮来完成它。
<StackPanel>
<StackPanel >
<Button Content="B1" Height="20" Width="100" Visibility="Visible" x:Name="B1"/>
<Button Content="B2" Height="20" Width="100" Visibility="Visible" x:Name="B2"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Button Content="Collapse B1" Click="Button_Click"/>
<Button Content="Collapse B2" Click="Button_Click_1"/>
<Button Content="Visible Both" Click="Button_Click_2"/>
</StackPanel>
</StackPanel>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
B1.Visibility = Visibility.Collapsed;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
B2.Visibility = Visibility.Collapsed;
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
B1.Visibility = Visibility.Visible;
B2.Visibility = Visibility.Visible;
}
}