能够 Select 在扩展器上的任何地方扩展

Ability to Select Anywhere on Expander to Expand

我在 WPF C# 中工作,注意到当我单击按钮或扩展器的 header(单词)时我的扩展器会扩展和折叠,但当我单击部分时不会扩展header 旁边的扩展器。

奇怪的是,当点击扩展器旁边的相同位置时,它会折叠扩展器。

那么有谁知道如何让整个扩展器被点击来展开和折叠吗?

非常感谢任何帮助!

<Expander ExpandDirection="Down" Width="Auto" Padding="4" Expanded="Expander_Expanded">
    <Expander.Style>
        <Style TargetType="Expander">
            <!--<Setter Property="IsExpanded" Value="{Binding XPath=@Name, Converter={StaticResource ExpandConverter}}"  />-->
            <Setter Property="IsExpanded" Value="{Binding XPath=@Expand}" />
            <Setter Property="Header">
                <Setter.Value>
                    <MultiBinding Converter="{StaticResource NameConverter}">
                        <Binding XPath="@Name" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>

            <Setter Property="FontWeight" Value="Bold" />

            <Style.Triggers>
                <DataTrigger Binding="{Binding IsExpanded,RelativeSource={RelativeSource Self}}" Value="True">
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Expander.Style>
    <ListBox Name="itemsList"
        ItemsSource="{Binding XPath=UpgradeAction}"
        ItemTemplate="{StaticResource dtListItemTemplate}"
        SelectionChanged="listItems_SelectionChanged"
        Style="{StaticResource styleListBoxUpgradeAction}"
        ItemContainerStyle="{StaticResource styleListBoxItemUpgradeAction}"
        MouseDoubleClick="itemsList_MouseDoubleClick">
    </ListBox>
</Expander>

也许看看 controltemplate?您还可以使用单击事件并查看鼠标是否在页眉部分并使其成为可重用的 Behavior.

问题是扩展器的宽度没有设置,所以是自动的。因此它在关闭时起作用,因为打开时宽度设置为整个扩展器。但是,它在折叠时不起作用,因为在折叠时,扩展器宽度仅设置为 header 的范围。因此,我将宽度更改为固定值,这样我就可以按扩展器顶部的任意位置来打开和关闭它。