質問

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

alt text

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>

ここで何が間違っているのかわかりません。情報をいただければ幸いです。ありがとう!

役に立ちましたか?

解決

のように見えると言えます。 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 のリファレンスに加えて、次の優れた情報がいくつかあります。 WPF博士.

他のヒント

私は(それは私の会社のファイアウォールによってブロックされています)自分のイメージを見ることができないが、ここで私はとにかく行く...

それが唯一の子要素、のItemsControlが含まれています。それが必要として

あなたの「オリエンテーション= 『横』」は、おそらく働いています。その代わり、ControlTemplateのはオリエンテーション=「水平」とのStackPanelが含まれているあなたのItemsControlのためのControlTemplateを作ってみます。

この情報がお役に立てば幸い!

編集

もう一度、BEAは答え/例と伝わってきます!

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top