J'ai ajouté un DockPanel à un élément RadioButton de sorte que je puisse distribuer le libellé du bouton radio, une zone de texte et un bouton horizontalement en utilisant 100% de la largeur.
En utilisant LastChildFill="True"
dans le DockPanel étire le dernier élément. Cela fonctionne bien si la zone de texte est le dernier enfant du panneau. Mais, comme le bouton est le dernier élément et a une largeur fixe, la zone de texte doit être étirée. Cependant, il n'y a pas une telle propriété comme 2ndChildFill="True"
.
Mon code ressemble à ceci:
<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>
Et cela me donne ceci:
Des idées, des conseils pour résoudre ce problème? Merci d'avance...
Vous devez définir DockPanel.Dock
propriété attachée pour vos éléments et laissez TextBox
comme dernier élément:
<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>