7

我有这段代码,我在 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>

它现在给了我这个:

停靠面板

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

我在这里做错了什么?

4

3 回答 3

6

尝试将HorizontalContentAlignment按钮的 设置为“ Stretch”。否则,您的 DockPanel 将使用其内容所需的大小,然后左对齐。TextBlock您可以通过为您的 s使用不同的文本长度来确认此行为

于 2013-03-19T15:01:43.357 回答
6

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

于 2014-07-16T11:19:40.420 回答
1

尝试设置

Horizo​​ntalContentAlignment="拉伸"

在您的按钮上。

于 2013-03-19T15:01:54.090 回答