Настройка WPF Expander;Сделать только значок кликабельным, а не весь заголовок - PullRequest
1 голос
/ 12 мая 2010

Я хочу Expander, который раскрывает / разворачивает содержимое только тогда, когда пользователь нажимает на значок заголовка (Вместо того, чтобы кликать весь заголовок.)

Должен ли я переопределить элемент управления Template, чтобы сделать это? Как бы это выглядело?
Где я могу найти стандартные шаблоны / стили для элементов управления?

Спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2012

Существует гораздо более простое решение 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>
0 голосов
/ 12 июня 2010

Я разместил решение моего вопроса здесь (та же ссылка, что и в комментарии от Бена).

...