1
我想在WPF中使用擴展器和StackPanels創建一個手風琴樣式菜單。做一個擴展器的頭ToggleButton
我希望能夠點擊Expander Header並顯示StackPanel而不顯示箭頭。這是工作,當我點擊箭頭,但我想刪除箭頭。
當我從Expander的ToggleButton中刪除'Arrow'屬性時,ToggleButton是Content Presenter下面的一個小區域,用戶難以點擊它。
有沒有辦法讓擴展器的整個頭部(包括文本)成爲ToggleButton?
在膨脹機的模板我有以下:
<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>