Visibilityが"Collapsed"に設定されたコントロールと、Visibility.CollapsedとVisibility.Hiddenの間の可視性を変更するToggleButtonがあります。MSDNのドキュメントによると 、コントロールの可視性が「折りたたみ」に設定されている場合、レイアウト内のコントロールにスペースが割り当てられることはありませんが、2つの列挙の間に視覚的な違いはありません。さらに、コントロールの表示は最初は折りたたみに設定されているため、コントロールの最初の描画でコントロールにスペースが割り当てられることはありません。
欠落している概念はありますか、または要素が表示されている場合にのみスペースを取るようにするにはどうすればよいですか?私の最終目標は、すべてのコントロール間で一貫したマージンを使用して、表示が変化するコントロールの北に表示されるユーザー選択に基づいた条件でコントロールを表示することです。
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>
CodeBehind:
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;
}
}
}