Pregunta

Así que tengo una StackPanel que estoy usando como ContentControl. Tengo un lugar donde quiero botones para ser generados en base a los datos que estoy conectando, y eso es todo trabajo bueno, pero quiero los botones para estar dispuestos de forma horizontal, no vertical como es lo que está sucediendo actualmente. Aquí hay una captura de pantalla:

text alt

Y aquí está el código de la descripción de mi 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>

No está seguro de lo que estoy haciendo mal aquí. Cualquier información sería muy apreciada. Gracias!

¿Fue útil?

Solución

Yo diría que se parece a la ItemsControl es lo que está mostrando los botones verticalmente. si desea que los botones de la ItemsControl a ser horizontales, entonces necesita la StackPanel estar en el ItemsControl ItemsPanelTemplate, no al revés como lo que usted tiene en su código:

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

Puede ser que sea un poco mal en el bit ItemsControl.ItemsPanel como no tengo ningún dato para probarlo con ...

Editar Además de la referencia Bea, hay algunas cosas buenas por Dr WPF .

Otros consejos

No puedo ver su imagen (está bloqueado por el firewall de mi empresa), pero aquí ir de todos modos ...

'Orientación = 'horizontal'' es, probablemente, funcionando como debería: sólo contiene un elemento secundario, ItemsControl. En su lugar, intenta hacer una ControlTemplate para su ItemsControl, donde el ControlTemplate contiene un StackPanel con Orientación = "horizontal".

Espero que esto ayude!

Editar

Una vez más, Bea llega a través de una respuesta / ejemplo!

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top