c# WPF: كيف يمكنني تمديد الطفل الأوسط في DockPanel؟



xaml textbox (1)

تحتاج إلى تعيين الخاصية المرفقة DockPanel.Dock وترك TextBox كعنصر آخر:

<RadioButton HorizontalAlignment="Stretch"
             HorizontalContentAlignment="Stretch">
    <DockPanel>
        <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>

أضفت DockPanel إلى عنصر RadioButton بحيث يمكنني توزيع تسمية زر الراديو ، مربع نص وزر أفقيًا باستخدام 100٪ من العرض.

باستخدام LastChildFill="True" داخل DockPanel تمدد العنصر الأخير. هذا يعمل بشكل جيد إذا كان مربع النص هو آخر طفل في اللوحة. ولكن ، بما أن الزر هو العنصر الأخير ولديه عرض ثابت ، فيجب تمديد مربع النص. ومع ذلك ، لا توجد خاصية مثل 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>

وهذا يعطيني:

أي أفكار ، تلميحات لإصلاح هذا؟ شكرا كثيرا مسبقا...





dockpanel