自定义WPF扩展器;仅使图标可点击而不是整个标题

时间:2010-05-12 19:51:47

标签: wpf controltemplate expander

我希望Expander只在用户点击标题图标时展开/折叠其内容。 (而不是整个标题是可点击的。)

我是否必须重新定义控件Template才能执行此操作?它看起来怎么样?
我在哪里可以找到控件的标准模板/样式?

感谢您的时间。

2 个答案:

答案 0 :(得分:2)

实际上,比修改模板更简单的XAML解决方案。在这种情况下,不要使用Expander的头属性。而是使用您自己的样式TextBlock覆盖扩展器。

<Application.Resources>
    <Style x:Key="ExpanderHeader" TargetType="{x:Type TextBlock}">
        <Setter Property="Height" Value="22" />
        <Setter Property="Margin" Value="21,0,0,0" />
        <Setter Property="Padding" Value="9,3,0,0" />
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="VerticalAlignment" Value="Top" />
    </Style>
</Application.Resources>

<Grid>
    <Expander>
        <TextBlock Text="I am some content. I have disowned my default header." Margin="10,5" />
    </Expander>
    <TextBlock Text="I'm filling in for the default header. You'll like me better anyway."
               Style="{StaticResource ResourceKey=ExpanderHeader}"/>
</Grid>

答案 1 :(得分:0)

我发布了问题here的解决方案(与Ben的评论相同的链接)。