【问题标题】:Dockpanel multiple textblock size?Dockpanel多个文本块大小?
【发布时间】:2016-08-26 22:29:07
【问题描述】:

我想用 9 个文本块填充我的 Dock 面板。我希望文本块填充整个停靠面板。我已将高度设置为自动,将垂直/水平对齐设置为拉伸。

然而,文本块不会填满整个停靠面板。关于可能出错的任何想法。谢谢

我的停靠面板位于网格中。

<Border  DockPanel.Dock="Top" Background="White" BorderBrush="DodgerBlue" BorderThickness="5,5,5,5" CornerRadius="10" Margin="2" Height="700">
            <DockPanel >
                <TextBlock DockPanel.Dock="Top" Name="txtID" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">1</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtOAG"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">2</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtFAILURE_ID" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">3</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtWIDTH"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">4</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtHeight"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">5</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtBARCODE_READ"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">6</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtBARCODE_NUM"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">7</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtANOMOLY"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">8</TextBlock>
                <TextBlock DockPanel.Dock="Top" Name="txtTRACECODE"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto">9</TextBlock>

            </DockPanel>
        </Border>

【问题讨论】:

  • 必须是DockPanel吗?为什么不能用Grid 替换DockPanel 并使用共享高度的行?
  • 我尝试了一个堆栈面板,但我无法让它工作。我知道它可以与网格一起使用,但必须有一种方法可以使用停靠/堆栈面板。
  • 不,真的没有。 StackPanel 将所有内容“堆叠”在一起,而 DockPanel 则“停靠”到两侧,默认情况下,最后一个孩子填充剩余的空间。您应该使用具有行和共享高度的 Grid。

标签: c# wpf xaml


【解决方案1】:

DockPanel“停靠”到两侧,StackPanel“堆叠”在一起。你应该使用Grid

像这样(以 3 行为例):

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Text="1" />
    <TextBlock Grid.Row="1" Text="2" />
    <TextBlock Grid.Row="2" Text="3" />
</Grid>

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2014-06-29
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多