我正在使用WPF C#并注意到当我点击扩展器的按钮或标题(单词)时我的扩展器将会展开和折叠,但是当我点击标题旁边的扩展器部分时它不会展开。
奇怪的是,当点击扩展器旁边的相同位置时,它会折叠扩展器。
那么有谁知道如何允许点击整个扩展器来展开和折叠它?
非常感谢任何帮助!
<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>
答案 0 :(得分:0)
或许可以查看 controltemplate ?您还可以使用点击事件查看鼠标是否位于标题部分,并使其成为可重复使用的行为。
答案 1 :(得分:0)
问题是没有设置扩展器的宽度,所以它是自动的。因此它在关闭时起作用,因为打开时的宽度设置为整个扩展器。但是,它在折叠时不起作用,因为折叠时,扩展器宽度仅设置为标头所在。因此,我将宽度更改为固定值,并允许我按下扩展器顶部的任何位置来打开和关闭它。