0

私は2つの列を持ちたいと思っていGridます.1つの列にはLabel別の列がありTextBox、値を表示しています。しかし残念ながら、私のラベルとテキスト ボックスは互いに重なって表示されます。私が間違っていることは何ですか?情報を表示する適切でエレガントな方法ですか? 多分あなたはそれを行うための他のより良い方法を提案できますか? ありがとう!

<StackPanel Grid.Row="0" Grid.Column="2" VerticalAlignment="Stretch">                   
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <telerik:Label Grid.Column="0" Content="Name" Width="203" FontSize="16"/>
        <telerik:Label Grid.Column="0" Content="Title" Width="203" FontSize="16"/>
        <telerik:Label Grid.Column="0" Content="Phone" Width="203" FontSize="16"/>
        <telerik:Label Grid.Column="0" Content="Email" Width="203" FontSize="16"/>
        <telerik:Label Grid.Column="0" Content="Departament" Width="203" FontSize="16"/>

        <TextBlock Grid.Column="1" x:Name="txtFullName" TextWrapping="Wrap" Height="26"/>
        <TextBlock Grid.Column="1" x:Name ="txtTitle" TextWrapping="Wrap" Height="26"/>
        <TextBlock Grid.Column="1" x:Name ="txtPhone" TextWrapping="Wrap" Height="26"/>
        <TextBlock Grid.Column="1" x:Name ="txtEmail" TextWrapping="Wrap" Height="26"/>
        <TextBlock Grid.Column="1" x:Name ="txtDepartment" TextWrapping="Wrap" Height="26"/>

    </Grid>              
</StackPanel>
4

1 に答える 1

1

に行を追加する必要がありますGrid。現在、行は 1 つしかないため ( がないためRowDefinitions)、各列のすべての項目が 1 つの行に積み重ねられます。

グリッド行は、列を追加したのとほぼ同じ方法で追加されます。次に、同じ方法でコントロールがどの行に属しているかをコントロールに伝えます。次のように行を追加できます。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>  <!-- * is the default width, so not required -->
        <ColumnDefinition/>            <!-- will be the same as above due to default of * -->
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/> <!-- the * height is implied if not present -->
        <RowDefinition Height="Auto"/>  <!-- this will take up only as much space as necessary -->
    </Grid.RowDefinitions>

    <TextBox Grid.Column="0" Grid.Row="0" Text="Label 1"/>
    <TextBox Grid.Column="0" Grid.Row="1" Text="Label 2"/>
    <!-- etc... -->
</Grid>

高さが * の行は、使用可能なスペース (高さが * のすべての行に分割されます) を埋めるために引き伸ばされ、高さが "Auto" の行は、内容を表示するために必要なスペースだけを占有するように縮小されます。

于 2013-03-03T21:11:54.937 に答える