代码之家  ›  专栏  ›  技术社区  ›  Julian Lettner

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

  •  1
  • Julian Lettner  · 技术社区  · 15 年前

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

    我需要重新定义控件吗 Template 这样做?看起来怎么样?
    在哪里可以找到控件的标准模板/样式?

    谢谢你抽出时间。

    2 回复  |  直到 12 年前
        1
  •  2
  •   bugged87    12 年前

    实际上,有一个比修改模板更简单的XAML解决方案。在这种情况下,不要使用扩展器的header属性。相反,用您自己风格的文本块覆盖扩展器。

    <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>
    
        2
  •  0
  •   Community CDub    8 年前

    我给我的问题贴了一个解决方案 here (与本的评论中的链接相同)。