1

我想要一个Expander仅在用户单击标题图标时展开/折叠它的内容。(而不是整个标题都是可点击的。)

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

谢谢你的时间。

4

2 回答 2

2

实际上有一个比修改模板更简单的 XAML 解决方案。在这种情况下,不要使用 Expander 的 header 属性。相反,用您自己的样式 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>
于 2012-11-19T18:54:47.397 回答
0

我在这里发布了我的问题的解决方案(与本评论中的链接相同)。

于 2010-06-11T21:01:25.637 回答