重新定位控件取决于其他控件的可见性



实际上下面的答案并不能解决我的目的。因此提出了另一个问题。控件重新定位如何取决于同一面板中的其他控件可见性。我在堆栈面板中有两个按钮。最初 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的可见性"可见",那么在UI中,B1和B2都会显示出来。如何实现此功能?

您可以使用 Visibility.折叠按钮来执行此操作。

<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;
    }
}

最新更新