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:

alt text

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!

War es hilfreich?

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!

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top