Domanda

Così ho uno StackPanel che sto usando come ContentControl. Ho un posto dove vorrei pulsanti per essere generati sulla base dei dati che sono vincolanti per, e questo è tutto lavorare bene, ma voglio i pulsanti per essere disposti in orizzontale, non in verticale come è ciò che sta accadendo. Ecco uno screenshot:

alt text

E qui è il codice della mia descrizione 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>

Non so quello che sto facendo male qui. Ogni informazione sarebbe molto gradita. Grazie!

È stato utile?

Soluzione

Direi che sembra che il ItemsControl è ciò che si sta visualizzando i pulsanti in senso verticale. se si desidera che i pulsanti nella ItemsControl per essere orizzontale, allora è necessario il StackPanel di essere nel ItemsControl ItemsPanelTemplate, non il contrario come quello che avete nel vostro codice:

<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>

Potrei essere un po 'sbagliato sul bit ItemsControl.ItemsPanel come non ho alcun dato per testare con ...

Modifica Oltre al riferimento di Bea, ci sono alcune cose buone da Dott WPF .

Altri suggerimenti

Non riesco a vedere la vostra immagine (è bloccato dal firewall della mia azienda), ma qui vado in ogni modo ...

Il tuo 'Orientation = 'Orizzontale'' probabilmente funziona come dovrebbe: contiene un solo elemento figlio, un ItemsControl. Invece, provare a fare un ControlTemplate per la vostra ItemsControl, dove il ControlTemplate contiene uno StackPanel con Orientamento = "orizzontale".

Spero che questo aiuti!

Modifica

Ancora una volta, Bea passa attraverso una risposta / esempio!

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top