Verwendung Stackpanel als Content (WPF)
-
06-09-2019 - |
Frage
Also habe ich ein Stackpanel, die ich als Content verwende. Ich habe einen Ort, wo ich Tasten will basierend auf Daten erzeugt werden, die ich bin zu binden, und das ist alles funktioniert gut, aber ich mag, dass die Tasten horizontal angelegt werden, nicht vertikal, wie ist das, was zur Zeit geschieht. Hier ist ein Screenshot:
Und hier ist der Code aus meiner Content Beschreibung:
<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>
Nicht sicher, was ich falsch hier tun. Jede Info wäre sehr dankbar. Dank!
Lösung
Ich würde sagen, es sieht aus wie die ItemsControl
ist, was die Tasten vertikal angezeigt wird. wenn Sie die Tasten in der ItemsControl
sein horizontal wollen, dann müssen Sie die StackPanel
im ItemsControl
ItemsPanelTemplate
sein, nicht umgekehrt wie das, was Sie in Ihrem Code haben:
<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>
Ich könnte auf dem ItemsControl.ItemsPanel
bisschen etwas falsch sein, wie ich keine Daten bekommen habe zu testen es mit ...
Edit: neben der Referenz Bea, gibt es einige gute Sachen von Dr WPF .
Andere Tipps
Ich kann nicht sehen Sie Ihr Bild (er von meiner Firma Firewall blockiert ist), aber hier gehe ich sowieso ...
Ihre ‚Orientation =‚Horizontal‘‘ wahrscheinlich funktioniert, wie es sollte: es nur ein untergeordnetes Element enthält, ein Itemscontrol. Stattdessen versuchen, eine Control für Ihre Items machen, wo die Control ein Stackpanel mit Orientierung enthält = „Horizontal“.
Hope, das hilft!
Edit:
Wieder einmal Bea kommt durch eine Antwort / example!