我有一个将 Visibility 设置为“Collapsed”的控件和一个 ToggleButton,用于更改 Visibility.Collapsed 和 Visibility.Hidden 之间的可见性。根据 MSDN 文档,当控件的 Visibility 设置为“Collaped”时,布局内不应为控件分配空间,但两个枚举之间没有视觉差异。此外,控件的 Visibility 最初设置为 Collapsed,因此控件的初始绘制不应为控件分配任何空间。
是否有我遗漏的概念,或者如何让元素仅在可见时占用空间?我的最终目标是让控件出现在基于用户选择的条件上,这些选择出现在所述显示可变控件的北部,所有控件之间的边距一致。
XAML 代码段:
<StackPanel>
    <TextBox Name="hideTest" DataContext="{StaticResource persistentMemoryBridge}"   Text="HIDETEST" Margin="0,327,31,491" Foreground="Black" Background="Orange" Visibility="Collapsed" />
    <TextBox DataContext="{StaticResource persistentMemoryBridge}"   Text="{Binding Path=PropertyTest}" Margin="0,386,31,432" Foreground="Black" Background="Yellow"/>
    <ToggleButton Name="tbVisibility" Content="Toggle" Click="ToggleButton_Click" Margin="0,445,65,391"></ToggleButton>
</StackPanel>
代码隐藏:
private void ToggleButton_Click(object sender, RoutedEventArgs e) {
        switch (hideTest.Visibility) {
            case System.Windows.Visibility.Collapsed: {
                hideTest.Visibility = Visibility.Hidden;
                tbVisibility.Content = "Hidden";
                break;    
            }
        case System.Windows.Visibility.Hidden: {
            hideTest.Visibility = Visibility.Visible;
            tbVisibility.Content = "Visible";    
            break;
            }
        case System.Windows.Visibility.Visible: {
            hideTest.Visibility = Visibility.Collapsed;
            tbVisibility.Content = "Collapsed";
            break;
            }
        }
    }