5

だから私は ContentControl として使用している StackPanel を持っています。バインドしているデータに基づいてボタンを生成したい場所があり、それはすべてうまく機能していますが、現在起こっているようにボタンを垂直ではなく水平に配置したいと考えています。スクリーンショットは次のとおりです。

代替テキスト

そして、ここに私の 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>

ここで何が間違っているのかわかりません。どんな情報でも大歓迎です。ありがとう!

4

2 に答える 2

9

ItemsControlボタンを縦に表示しているように見えます。のボタンをItemsControl水平にしたい場合は、コードにあるような逆ではなく、StackPanelにある必要があります。ItemsControl ItemsPanelTemplate

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

検証するためのデータがないので、少し間違っているかもしれませんItemsControl.ItemsPanel...

編集: Bea リファレンスに加えて、Dr WPFによるいくつかの優れたものがあります。

于 2009-06-01T14:03:46.373 に答える
3

画像が表示されません (会社のファイアウォールによってブロックされています)。

あなたの 'Orientation="Horizo​​ntal"' はおそらく正常に機能しています。これには、ItemsControl という 1 つの子要素しか含まれていません。代わりに、ControlTemplate に Orientation="Horizo​​ntal" の StackPanel が含まれている、ItemsControl の ControlTemplate を作成してみてください。

お役に立てれば!

編集:

もう一度、Bea が回答/例を示します。

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

于 2009-06-01T13:52:20.327 に答える