【发布时间】:2012-07-17 14:01:58
【问题描述】:
我想创建一个面包屑控件,它的开头有一个按钮,用于清除面包屑项目。我的问题是让第一个按钮与其余项目正确包装。这是我的风格:
<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>
当所有项目都放在同一行时,它会正确显示:
当它开始换行时,它会推动“菜单”按钮下方的所有项目:
有没有办法可以更新它,使其他元素不会出现在菜单按钮下方?
【问题讨论】:
-
Chris,请问您可以发布按钮的样式吗?我想创建类似的东西。
-
@GailBowen 抱歉,我没有那个代码了。在这里查看答案stackoverflow.com/questions/5727382/…
标签: wpf controltemplate itemscontrol wrappanel