Question

J'ai un StackPanel que j'utilise comme ContentControl. J'ai un endroit où je veux des boutons à générer à partir des données que je suis à force obligatoire, et c'est tout bon travail, mais je veux que les boutons soient disposés horizontalement, pas verticalement comme il est ce qui se passe actuellement. Voici une capture d'écran:

text alt

Et voici le code de ma description de ContentTemplate:

<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2">
    <ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Tag="{Binding}" Padding="3">
                     <TextBlock Text="{Binding Path=DisplayValue}" />
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

Je ne sais pas ce que je fais mal ici. Toute information serait grandement appréciée. Merci!

Était-ce utile?

La solution

Je dirais que cela ressemble à la ItemsControl est ce qui affiche les boutons verticalement. si vous voulez que les boutons du ItemsControl pour être horizontal, alors vous devez le StackPanel être dans le ItemsControl de ItemsPanelTemplate, et non l'inverse comme ce que vous avez dans votre code:

<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button Tag="{Binding}" Padding="3">
                <TextBlock Text="{Binding Path=DisplayValue}" />
            </Button>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

Je pourrais être un peu mal sur le bit ItemsControl.ItemsPanel que je n'ai pas de données pour le tester avec ...

Modifier En plus de la référence Bea, il y a quelques bonnes choses par Dr WPF .

Autres conseils

Je ne vois pas l'image (il est bloqué par le pare-feu de mon entreprise), mais ici je vais ... de toute façon

Votre « Orientation = « horizontal » » fonctionne probablement comme il se doit: elle ne contient qu'un seul élément enfant, un ItemsControl. Au lieu de cela, essayez de faire un ControlTemplate pour votre ItemsControl, où le ControlTemplate contient un StackPanel avec orientation = "horizontal".

Hope this helps!

Modifier

Encore une fois, Bea passe par une réponse / exemple!

http://bea.stollnitz.com/blog/?p=10

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top