文本框和文本块无法对齐

问题描述 投票:0回答:1

我目前正在练习xaml。我打算用文本框和文本块制作一个简单的菜单。

当我将文本块或文本框拖到画布上时,看起来不错。但我运行程序后却相差甚远。我以为是保证金部分的原因,但两个小时后,事实证明不是。

我在这里缺少什么? editing view after run view

<Page
    x:Class="newPrac.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:newPrac"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid>
        <ComboBox x:Name="comboBox" Margin="218,56,0,0" Width="111" Height="42">
            <ComboBoxItem Content="Noodle"/>
            <ComboBoxItem Content="Rice"/>
            <ComboBoxItem Content="Burger"/>
            <ComboBoxItem Content="Pizza"/>
        </ComboBox>
        <TextBlock x:Name="textCompany" Margin="57,110,1114,571" TextWrapping="Wrap" Text="2" FontSize="18"/>
        <TextBlock x:Name="textFrom" Margin="57,190,1127,486" TextWrapping="Wrap" Text="4" FontSize="18" />
        <TextBlock x:Name="textBlock" Margin="58,290,1136,388" TextWrapping="Wrap" Text="6" FontSize="18"/>
        
        <TextBox x:Name="textBox" Margin="41,55,1139,622" TextWrapping="Wrap" Text="1" Width="100"/>
        <TextBox x:Name="textBox1" Margin="229,129,951,547" TextWrapping="Wrap" Text="3" Width="100"/>
        <TextBox x:Name="txt" Margin="229,190,951,485" TextWrapping="Wrap" Text="5" Width="100"/>
        
        <TextBox x:Name="txtWho" Margin="217,290,963,385" TextWrapping="Wrap" Text="TextBox" Width="100"/>
    </Grid>
</Page>
c# xaml textbox textblock
1个回答
0
投票

尝试定义网格列和行并将各个控制类对象放入其中,而不是松散地拖动它们 - 它们的对齐可能会受到宽度和位置的阻碍。索引从 0 开始,看起来像这样:

<Grid>
    <Grid.ColumnDefinitions>
        <!--COLUMN DEFINITIONS (SET SIZE FOR EACH WITH = VALUE, AUTO OR *-->
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <!--ROW DEFINITIONS (SET SIZE FOR EACH WITH = VALUE, AUTO OR *-->
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
</Grid>

行和列可以适合特定的宽度和/或高度,或者可以简单地用

Auto
表示,以根据包含的控制对象自动调整大小,或用
*
来填充与程序相比的其余空间窗口和定义。每个控制对象的行和列可以使用
Grid.Row="x"
Grid.Column="x"
设置,其中
x
是行号或列号(同样,索引从 0 开始)。

此外,您可以将对象包装在 WrapPanelStackPanel 中,将它们集中起来而不是单独对待。

© www.soinside.com 2019 - 2024. All rights reserved.