WPF Dockpanel无法正确对齐

时间:2013-03-19 14:56:55

标签: wpf dockpanel

我有这个代码,我在Button.Content上使用DockPanel。但是它不能让我对齐最后一张图像(小箭头)。

<Button Height="70"
                    HorizontalContentAlignment="Left">
              <Button.Content>
                <DockPanel LastChildFill="False">
                  <Image DockPanel.Dock="Left"
                    Height="50"
                         Width="50"
                         Source="{StaticResource Placeholder}"
                         Stretch="UniformToFill"
                         Margin="5" />
                  <TextBlock DockPanel.Dock="Left"
                             Text="Dummy text"
                             VerticalAlignment="Center"
                             Margin="5" />
                  <Image DockPanel.Dock="Right"
                         Height="24"
                         Width="24"
                         Source="{StaticResource Right_Arrow_24}"
                         VerticalAlignment="Center"
                         HorizontalAlignment="Right"
                         Stretch="UniformToFill"
                         Margin="5" />
                </DockPanel>
              </Button.Content>
            </Button>

它现在给了我这个:

DockPanel

所以右边的小箭头应该放在按钮的右边,而不是仅仅放在TextBlock之后。 我发现了一些类似的问题,看起来我做得对,但不知怎的,它不是......

我在这里做错了什么?

3 个答案:

答案 0 :(得分:6)

尝试将按钮的HorizontalContentAlignment设置为“Stretch”。否则,您的DockPanel将按其内容使用尺寸需求,然后左对齐。您可以使用TextBlock

的不同文本长度来确认此行为

答案 1 :(得分:4)

您只需将一个额外的子项附加到DockPanel(比如一个空的Canvas)而不使用DockPanel.Dock属性,以便为其分配所有剩余空间。 通常,DockPanel仅在其最后一个子节点没有Dock约束时才能正常工作

答案 2 :(得分:1)

尝试设置

  

Horizo​​ntalContentAlignment = “拉伸”

在你的按钮上。