web-dev-qa-db-ja.com

WPF:DockPanelで真ん中の子をストレッチするにはどうすればよいですか?

RadioButton要素にDockPanelを追加して、ラジオボタンラベル、テキストボックス、ボタンを幅の100%で水平に配置できるようにしました。

DockPanel内でLastChildFill="True"を使用すると、最後の要素が引き伸ばされます。テキストボックスがパネルの最後の子である場合、これはうまく機能します。ただし、ボタンは最後の要素であり、幅が固定されているため、テキストボックスを拡大する必要があります。ただし、2ndChildFill="True"のようなプロパティはありません。

私のコードは次のようになります:

    <RadioButton HorizontalAlignment="Stretch"
                                        HorizontalContentAlignment="Stretch">
        <DockPanel >
            <TextBlock VerticalAlignment="Center">in location:</TextBlock>
            <TextBox Grid.Column="1" Margin="10,0,0,0">Path string</TextBox>
            <Button HorizontalAlignment="Right" 
                    Margin="10,0,0,0" Padding="3,0">...</Button>
        </DockPanel>
    </RadioButton>

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

wpf screenshot

これを修正するためのアイデア、ヒントはありますか?事前に感謝します...

39
brgn

要素に DockPanel.Dock 添付プロパティを設定し、TextBoxを最後の要素のままにする必要があります。

<RadioButton HorizontalAlignment="Stretch"
             HorizontalContentAlignment="Stretch">
    <DockPanel LastChildFill="True">
        <TextBlock DockPanel.Dock="Left"
                   VerticalAlignment="Center"
                   Text="in location:" />
        <Button DockPanel.Dock="Right"
                Margin="10,0,0,0"
                Padding="3,0"
                Content="..." />
        <TextBox Margin="10,0,0,0">
            Path string
        </TextBox>
    </DockPanel>
</RadioButton>
55
max