3

ブレッドクラム項目をクリアするボタンを最初に持つブレッドクラム コントロールを作成したいと考えています。私の問題は、最初のボタンを残りのアイテムで適切にラップすることです。これが私のスタイルです:

<Style TargetType="{x:Type local:Breadcrumb}">
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <Button Content="{Binding}"
                        FontSize="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbFontSize}" 
                        FontFamily="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbFont}"
                        FontWeight="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbFontWeight}"
                        Width="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbItemWidth}"
                        Height="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbItemHeight}"
                        Margin="0,0,-22,10"
                        Style="{DynamicResource BreadcrumbButton}" />
            </DataTemplate>
        </Setter.Value>
    </Setter>

    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ItemsControl}">
                <WrapPanel>
                    <Button Content="Menu" Height="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbItemHeight}"
                            Width="{Binding RelativeSource={RelativeSource AncestorType=local:Breadcrumb}, Path=BreadcrumbItemWidth}"/>
                    <ItemsPresenter Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" />
                </WrapPanel> 
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

すべてのアイテムが同じ行に収まると、正しく表示されます。

ここに画像の説明を入力

ラップを開始すると、「メニュー」ボタンの下にあるすべての項目がプッシュされます。

ここに画像の説明を入力

これを更新して、他の要素がメニュー ボタンの下に表示されないようにする方法はありますか?

4

1 に答える 1

1

いいえ、 にItemsPresenterは別の が含まれWrapPanelます。そのボタンをアイテムの一部にすることをお勧めします (たとえば、 を使用CompositeCollection)。その後、同じ になりWrapPanelます。

于 2012-07-17T14:06:00.923 に答える