상단 텍스트 상자를 숨길 때 내 TextBox
의 위치를 변경하고 싶습니다. 어떻게 할 수 있습니까? 난 wpf C#을 사용하고 있습니다.Visibility = "Collapsed"무언가를 특별히 필요로하지 않습니까?
Visibility="Collapsed"
을 사용하면되지만 공간을 차지합니다. TextBox
에 Visibility="Collapsed"
를 설정
상단 텍스트 상자를 숨길 때 내 TextBox
의 위치를 변경하고 싶습니다. 어떻게 할 수 있습니까? 난 wpf C#을 사용하고 있습니다.Visibility = "Collapsed"무언가를 특별히 필요로하지 않습니까?
Visibility="Collapsed"
을 사용하면되지만 공간을 차지합니다. TextBox
에 Visibility="Collapsed"
를 설정
봅니다 .... 여기
내가 당신의 질문 및 의견에서 단서에 따라, 내 마지막 코멘트에 무슨 뜻인지 보여줍니다 예입니다. StackPanel, 고정 된 행 높이의 그리드, 자동 행 높이의 그리드에서 Visible, Hidden 및 Collapsed가 어떻게 작동하는지 보여줍니다.
이것은 아주 기본적인 내용이지만, 앞으로 도움이 될 것입니다. 향후 Google 검색에 도움이 될 것입니다.
<Window x:Class="CollapsedExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Collapsed Example" SizeToContent="WidthAndHeight">
<Window.Resources>
<Style x:Key="rectBase" TargetType="{x:Type Rectangle}">
<Setter Property="Width" Value="100" />
<Setter Property="Height" Value="50" />
<Setter Property="Margin" Value="5" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="rectCollapsing"
BasedOn="{StaticResource rectBase}"
TargetType="{x:Type Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=radioVisible,
Path=IsChecked}"
Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=radioHidden,
Path=IsChecked}"
Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=radioCollapsed,
Path=IsChecked}"
Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="labelStyle"
TargetType="{x:Type Label}">
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</Window.Resources>
<Grid x:Name="gridLayout"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- Stack Panel -->
<Label Grid.Column="0"
Grid.Row="0"
Style="{StaticResource labelStyle}"
Content="Stack Panel" />
<StackPanel x:Name="stackExample"
Grid.Column="0"
Grid.Row="1">
<Rectangle Style="{StaticResource rectBase}"
Fill="Blue" />
<Rectangle Style="{StaticResource rectCollapsing}"
Fill="Red" />
<Rectangle Style="{StaticResource rectBase}"
Fill="Green" />
</StackPanel>
<!-- Grid with Fixed Sizes -->
<Rectangle x:Name="rectShading"
Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"
Fill="LightGray" />
<Label Grid.Column="1"
Grid.Row="0"
Style="{StaticResource labelStyle}"
Content="Grid (Fixed Row Size)" />
<Grid x:Name="gridFixedRowsExample"
Grid.Column="1"
Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="60" />
<RowDefinition Height="60" />
<RowDefinition Height="60" />
</Grid.RowDefinitions>
<Rectangle Style="{StaticResource rectBase}"
Grid.Row="0"
Fill="Blue" />
<Rectangle Style="{StaticResource rectCollapsing}"
Grid.Row="1"
Fill="Red" />
<Rectangle Style="{StaticResource rectBase}"
Grid.Row="2"
Fill="Green" />
</Grid>
<!-- Grid with Auto Sizes -->
<Label Grid.Column="2"
Grid.Row="0"
Style="{StaticResource labelStyle}"
Content="Grid (Auto Row Size)" />
<Grid x:Name="gridAutoRowsExample"
Grid.Column="2"
Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Style="{StaticResource rectBase}"
Grid.Row="0"
Fill="Blue" />
<Rectangle Style="{StaticResource rectCollapsing}"
Grid.Row="1"
Fill="Red" />
<Rectangle Style="{StaticResource rectBase}"
Grid.Row="2"
Fill="Green" />
</Grid>
<!-- Options -->
<StackPanel x:Name="stackOptions"
Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3">
<RadioButton x:Name="radioVisibile"
IsChecked="True"
Margin="5"
Content="Red Rectangle is Visible" />
<RadioButton x:Name="radioHidden"
Margin="5"
Content="Red Rectangle is Hidden" />
<RadioButton x:Name="radioCollapsed"
Margin="5"
Content="Red Rectangle is Collapsed" />
</StackPanel>
</Grid>
</Window>
정확하게 이해하고 있다면 GUI 구성 요소의 가시성 값을 문자열 값으로 설정하려고합니다. 당신이해야 할 일은 System.Windows.Visibility의 미리 정의 된 상수로 설정하는 것입니다.
예를 들어 코드에서 myTextBox라는 텍스트 상자로 작업한다고 가정 해 보겠습니다. 당신이 설정해야 할 것 :
myTextBox.Visibility = System.Windows.Visibility.Collapsed;
당신은 "축소"문자열로 설정하려고하면이 값으로 무엇을 알 수 없습니다.
텍스트 상자가 위쪽, 아래쪽 등으로 이동해야 함을 의미합니다. –
추측을 받아 들일 필요가 없도록 시나리오를 더 잘 설명하십시오. – Amsakanna
"숨김"을 사용하지 않고 "접음"을 사용하고 있습니까? Visibility.Hidden은 텍스트 상자를 보이지 않게 만들지 만 위치를 유지 (공간 예약)하는 반면 Visibility.Collapse는 보이지 않게하고 공간을 확보합니다. 실제로 Collapsed를 사용하는 경우 @Veer가 설명하는대로 다른 레이아웃 문제가 있어야합니다. –