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>

それは今私にこれを与えます:

DockPanel

したがって、右の小さな矢印は、TextBlockの直後ではなく、ボタンの右側に配置する必要があります。私はいくつかの同様の問題を見つけました、そしてそれは私がそれを正しくしたように見えます、しかしどういうわけかそれはそうではありません。

私はここで何が間違っているのですか?

4

3 に答える 3

6

HorizontalContentAlignmentボタンのを「 」に設定してみてくださいStretch。それ以外の場合、DockPanelはコンテンツに必要なサイズを使用してから、左に揃えます。TextBlockのテキストの長さを変えることで、この動作を確認できます。

于 2013-03-19T15:01:43.357 に答える
6

DockPanel.Dock属性なしでDockPanelに追加の子(たとえば空のCanvas)を追加するだけで、残りのすべてのスペースがそれに割り当てられます。一般に、DockPanelは、最後の子にDock制約がない場合にのみ正常に機能します。

于 2014-07-16T11:19:40.420 に答える
1

設定してみてください

ホリゾンタルコンテンツAlignment="Stretch"

あなたのボタンに。

于 2013-03-19T15:01:54.090 に答える