【发布时间】: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。