我正在尝试使用 Expanders 和 StackPanels 在 WPF 中创建手风琴风格的菜单。
我希望能够单击 Expander Header 并显示 StackPanel 而不显示箭头。当我单击箭头时,这是有效的,但是我想删除箭头。
当我从 Expander 的 ToggleButton 中删除“箭头”属性时,ToggleButton 是 Content Presenter 下方的一个小区域,用户难以点击。
有没有办法让扩展器的整个标题(包括文本)成为 ToggleButton?
在 Expander 的模板中,我有以下内容:
<ToggleButton IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
OverridesDefaultStyle="True" Template="{StaticResource ExpanderToggleButton}" Background="{StaticResource NormalBrush}"
Height="25">
</ToggleButton>
<ContentPresenter Margin="4" ContentSource="Header" RecognizesAccessKey="True" />
在“ExpanderToggleButton”中:
<ControlTemplate x:Key="ExpanderToggleButton" TargetType="ToggleButton">
<Border Name="Border" CornerRadius="2,0,0,0" Background="Transparent" BorderBrush="{StaticResource NormalBorderBrush}" BorderThickness="0,0,1,0">
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ToggleButton.IsMouseOver" Value="true">
<Setter TargetName="Border" Property="Background" Value="Red" />
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>