Mettre de la Pile de Panneaux de côté par côté
J'ai besoin de mettre des contrôles groupés et de les mettre côte à côte. Et je suis venu avec ce code à utiliser plusieurs StackPanel
de le faire.
<Window x:Class="xamlTests.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="310" Width="525">
<Grid>
<StackPanel x:Name="_ribbonRadioButtonPanel" Orientation="Vertical">
<CheckBox Content="Signed" Height="16" Name="Signed" Checked="Signed_Checked" Margin="10,5"/>
<StackPanel x:Name="_wordLength" Orientation="Horizontal">
<TextBox Height="18" Name="textBoxWordLength" Width="30" Margin="10,5"/>
<TextBlock Height="20" Name="textBlockWordLength" Text="Word Length" Width="120"/>
</StackPanel>
<StackPanel x:Name="_integerWordLength" Orientation="Horizontal">
<TextBox Height="18" Name="textBoxIntegerWordLength" Width="30" Margin="10,5"/>
<TextBlock Height="20" Name="textBlockIntegerWordLength" Text="Integer Word Length" Width="120"/>
</StackPanel>
</StackPanel>
<StackPanel x:Name="_ribbonRadioButtonPanel2">
<StackPanel x:Name="_max" Orientation="Horizontal">
<TextBox Height="18" Name="maxTextBox" Width="100" Margin="10,5"/>
<TextBlock Height="20" Name="maxTextBlock" Text="Max" Width="120"/>
</StackPanel>
<StackPanel x:Name="_min" Orientation="Horizontal">
<TextBox Height="18" Name="minTextBox" Width="100" Margin="10,5"/>
<TextBlock Height="20" Name="minTextBlock" Text="Min" Width="120"/>
</StackPanel>
<StackPanel x:Name="_delta" Orientation="Horizontal">
<TextBox Height="18" Name="deltaTextBox" Width="100" Margin="10,5"/>
<TextBlock Height="20" Name="delatTextBlock" Text="Delta" Width="120"/>
</StackPanel>
</StackPanel>
</Grid>
</Window>
Cependant, j'ai eu StackPanels overapped. Quel est le problème avec le code XAML? La mise en page des panneaux sont utilisés pour l'alignement de plusieurs composants?
- vous êtes à l'aide de la grille de tenir les deux stackpanels.... utilisation stackpanel à la place de la grille ou.. l'utilisation des lignes de la grille pour aligner
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire ce qui suit...
Cela permettra de mettre les commandes dans des colonnes distinctes, de sorte qu'ils ne se chevauchent pas. Une autre approche consiste à placer la pile de panneaux dans un stackpanel qui a son orientation définie à l'horizontale comme à la suivante...
Il y a probablement de nombreuses autres façons de le faire ainsi pour obtenir le résultat souhaité.
Le problème c'est que la Grille est un conteneur qui peut contenir de nombreux éléments et, par défaut, ils sont placés dans la Grille=0,Column=0.
Puisque vous n'avez pas défini de lignes ou de colonnes et de ne pas spécifié où la stackpanels doivent être placés à l'aide de la Grille.Ligne et de la Grille.Colonne de propriétés attachées, ils apparaissent dans le même lieu.
Et dans les Grilles de plusieurs éléments dans une même cellule sont superposés comme vous pouvez le voir.
Vous trouverez des exemples sur d'autres réponses, je voulais expliquer pourquoi ce qui se passe.
De l'essayer.....
juste de remplacer votre grille avec stackpanel
ou essayez cette