[.net] WPF TextBox가 StackPanel로 채워지지 않습니다.



Answers

대신 Grid를 사용하는 것이 좋습니다 :

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="180" Width="324">

    <Grid Background="Orange">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Column="0" Text="a label" 
           VerticalAlignment="Center"/>
        <TextBox  Grid.Column="1"/>
    </Grid>
</Window>

이 문제를 해결하는 또 다른 방법은 레이블을 오른쪽 대신에 쌓아 올리는 것입니다. UWP에 헤더 속성이 내장되어있어 WPF 용 헤더 속성이 있는지 확실하지 않습니다.

<TextBox Header="MyLabel" />
Question

OrientationHorizontal 로 설정된 StackPanel 내에 TextBox 컨트롤이 있지만 나머지 StackPanel 공간을 채우기 위해 TextBox를 가져올 수 없습니다.

XAML :

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="180" Width="324">

    <StackPanel Background="Orange" Orientation="Horizontal" >
        <TextBlock Text="a label" Margin="5" VerticalAlignment="Center"/>
        <TextBox Height="25" HorizontalAlignment="Stretch" Width="Auto"/>
    </StackPanel>
</Window>

그리고 이것은 다음과 같습니다.

TextBox가 StackPanel을 채우지 않는 이유는 무엇입니까?

Grid 컨트롤을 사용하여 더 많은 컨트롤을 가질 수 있다는 것을 알고 있습니다. 레이아웃에 대해 혼란 스러울뿐입니다.




Links



Tags

.net .net   wpf