C# 为什么';我的扩展器在设置其模板时不会展开吗?

C# 为什么';我的扩展器在设置其模板时不会展开吗?,c#,wpf,templates,controltemplate,expander,C#,Wpf,Templates,Controltemplate,Expander,我正在尝试更改扩展器的“展开”按钮的颜色,似乎唯一的方法是更改其控件模板,因为没有属性来设置它 所以,我过去常常抓取Aero主题的模板。然后,我在扩展器上设置了该模板,,没有其他更改。它看起来很好,但单击按钮不再使其展开 有人能解释为什么会这样吗?我希望它很简单,但我仍在学习WPF,还没有弄明白它。多谢各位 以下是完整的代码: <Expander Header="Test"> <Expander.Template> <ControlTemplate Ta

我正在尝试更改扩展器的“展开”按钮的颜色,似乎唯一的方法是更改其控件模板,因为没有属性来设置它

所以,我过去常常抓取Aero主题的模板。然后,我在扩展器上设置了该模板,,没有其他更改。它看起来很好,但单击按钮不再使其展开

有人能解释为什么会这样吗?我希望它很简单,但我仍在学习WPF,还没有弄明白它。多谢各位

以下是完整的代码:

<Expander Header="Test">
  <Expander.Template>
    <ControlTemplate TargetType="Expander" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Border BorderThickness="{TemplateBinding Border.BorderThickness}" CornerRadius="3,3,3,3" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}" SnapsToDevicePixels="True">
        <DockPanel>
          <ToggleButton IsChecked="False" Content="{TemplateBinding HeaderedContentControl.Header}" ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}" Foreground="{TemplateBinding TextElement.Foreground}" FontFamily="{TemplateBinding TextElement.FontFamily}" FontSize="{TemplateBinding TextElement.FontSize}" FontStretch="{TemplateBinding TextElement.FontStretch}" FontStyle="{TemplateBinding TextElement.FontStyle}" FontWeight="{TemplateBinding TextElement.FontWeight}" HorizontalContentAlignment="{TemplateBinding Control.HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding Control.VerticalContentAlignment}" Padding="{TemplateBinding Control.Padding}" Name="HeaderSite" MinWidth="0" MinHeight="0" Margin="1,1,1,1" DockPanel.Dock="Top">
            <ToggleButton.Style>
              <Style TargetType="ToggleButton">
                <Style.Resources>
                  <ResourceDictionary />
                </Style.Resources>
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                      <Border Padding="{TemplateBinding Control.Padding}">
                        <Grid Background="#00FFFFFF" SnapsToDevicePixels="False">
                          <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="19" />
                            <ColumnDefinition Width="*" />
                          </Grid.ColumnDefinitions>
                          <Ellipse Stroke="#FFA9A9A9" Name="circle" Width="19" Height="19" HorizontalAlignment="Center" VerticalAlignment="Center" />
                          <Path Data="M1,1.5L4.5,5 8,1.5" Stroke="#FF666666" StrokeThickness="2" Name="arrow" HorizontalAlignment="Center" VerticalAlignment="Center" SnapsToDevicePixels="False" />
                          <ContentPresenter RecognizesAccessKey="True" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Margin="4,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" SnapsToDevicePixels="True" Grid.Column="1" />
                        </Grid>
                      </Border>
                      <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsChecked">
                          <Setter TargetName="arrow" Property="Path.Data">
                            <Setter.Value>
                              <StreamGeometry>M1,4.5L4.5,1 8,4.5</StreamGeometry>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="UIElement.IsMouseOver">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF3C7FB1</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF222222</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="ButtonBase.IsPressed">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF526C7B</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="circle" Property="Shape.StrokeThickness">
                            <Setter.Value>
                              <s:Double>1.5</s:Double>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF003366</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                      </ControlTemplate.Triggers>
                    </ControlTemplate>
                  </Setter.Value>
                </Setter>
              </Style>
            </ToggleButton.Style>
            <ToggleButton.FocusVisualStyle>
              <Style TargetType="IFrameworkInputElement">
                <Style.Resources>
                  <ResourceDictionary />
                </Style.Resources>
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate>
                      <Border>
                        <Rectangle Stroke="#FF000000" StrokeThickness="1" StrokeDashArray="1 2" Margin="0,0,0,0" SnapsToDevicePixels="True" />
                      </Border>
                    </ControlTemplate>
                  </Setter.Value>
                </Setter>
              </Style>
            </ToggleButton.FocusVisualStyle>
          </ToggleButton>
          <ContentPresenter Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Name="ExpandSite" Margin="{TemplateBinding Control.Padding}" HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" Visibility="Collapsed" Focusable="False" DockPanel.Dock="Bottom" />
        </DockPanel>
      </Border>
      <ControlTemplate.Triggers>
        <Trigger Property="Expander.IsExpanded">
          <Setter TargetName="ExpandSite" Property="UIElement.Visibility" Value="{x:Static Visibility.Visible}" />
          <Trigger.Value>
            <s:Boolean>True</s:Boolean>
          </Trigger.Value>
        </Trigger>
        <Trigger Property="Expander.ExpandDirection">
          <Setter TargetName="ExpandSite" Property="DockPanel.Dock" Value="{x:Static Dock.Right}" />
          <Setter TargetName="HeaderSite" Property="DockPanel.Dock" Value="{x:Static Dock.Left}" />
          <Setter TargetName="HeaderSite" Property="FrameworkElement.Style">
            <Setter.Value>
              <Style TargetType="ToggleButton">
                <Style.Resources>
                  <ResourceDictionary />
                </Style.Resources>
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                      <Border Padding="{TemplateBinding Control.Padding}">
                        <Grid Background="#00FFFFFF" SnapsToDevicePixels="False">
                          <Grid.RowDefinitions>
                            <RowDefinition Height="19" />
                            <RowDefinition Height="*" />
                          </Grid.RowDefinitions>
                          <Grid>
                            <Grid.LayoutTransform>
                              <TransformGroup>
                                <TransformGroup.Children>
                                  <RotateTransform Angle="-90" />
                                </TransformGroup.Children>
                              </TransformGroup>
                            </Grid.LayoutTransform>
                            <Ellipse Stroke="#FFA9A9A9" Name="circle" Width="19" Height="19" HorizontalAlignment="Center" VerticalAlignment="Center" />
                            <Path Data="M1,1.5L4.5,5 8,1.5" Stroke="#FF666666" StrokeThickness="2" Name="arrow" HorizontalAlignment="Center" VerticalAlignment="Center" SnapsToDevicePixels="False" />
                          </Grid>
                          <ContentPresenter RecognizesAccessKey="True" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Margin="0,4,0,0" HorizontalAlignment="Center" VerticalAlignment="Top" SnapsToDevicePixels="True" Grid.Row="1" />
                        </Grid>
                      </Border>
                      <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsChecked">
                          <Setter TargetName="arrow" Property="Path.Data">
                            <Setter.Value>
                              <StreamGeometry>M1,4.5L4.5,1 8,4.5</StreamGeometry>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="UIElement.IsMouseOver">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF3C7FB1</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF222222</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="ButtonBase.IsPressed">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF526C7B</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="circle" Property="Shape.StrokeThickness">
                            <Setter.Value>
                              <s:Double>1.5</s:Double>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF003366</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                      </ControlTemplate.Triggers>
                    </ControlTemplate>
                  </Setter.Value>
                </Setter>
              </Style>
            </Setter.Value>
          </Setter>
          <Trigger.Value>
            <x:Static Member="ExpandDirection.Right" />
          </Trigger.Value>
        </Trigger>
        <Trigger Property="Expander.ExpandDirection">
          <Setter TargetName="ExpandSite" Property="DockPanel.Dock" Value="{x:Static Dock.Top}" />
          <Setter TargetName="HeaderSite" Property="DockPanel.Dock" Value="{x:Static Dock.Bottom}" />
          <Setter TargetName="HeaderSite" Property="FrameworkElement.Style">
            <Setter.Value>
              <Style TargetType="ToggleButton">
                <Style.Resources>
                  <ResourceDictionary />
                </Style.Resources>
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                      <Border Padding="{TemplateBinding Control.Padding}">
                        <Grid Background="#00FFFFFF" SnapsToDevicePixels="False">
                          <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="19" />
                            <ColumnDefinition Width="*" />
                          </Grid.ColumnDefinitions>
                          <Grid>
                            <Grid.LayoutTransform>
                              <TransformGroup>
                                <TransformGroup.Children>
                                  <RotateTransform Angle="180" />
                                </TransformGroup.Children>
                              </TransformGroup>
                            </Grid.LayoutTransform>
                            <Ellipse Stroke="#FFA9A9A9" Name="circle" Width="19" Height="19" HorizontalAlignment="Center" VerticalAlignment="Center" />
                            <Path Data="M1,1.5L4.5,5 8,1.5" Stroke="#FF666666" StrokeThickness="2" Name="arrow" HorizontalAlignment="Center" VerticalAlignment="Center" SnapsToDevicePixels="False" />
                          </Grid>
                          <ContentPresenter RecognizesAccessKey="True" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Margin="4,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" SnapsToDevicePixels="True" Grid.Column="1" />
                        </Grid>
                      </Border>
                      <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsChecked">
                          <Setter TargetName="arrow" Property="Path.Data">
                            <Setter.Value>
                              <StreamGeometry>M1,4.5L4.5,1 8,4.5</StreamGeometry>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="UIElement.IsMouseOver">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF3C7FB1</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF222222</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="ButtonBase.IsPressed">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF526C7B</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="circle" Property="Shape.StrokeThickness">
                            <Setter.Value>
                              <s:Double>1.5</s:Double>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF003366</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                      </ControlTemplate.Triggers>
                    </ControlTemplate>
                  </Setter.Value>
                </Setter>
              </Style>
            </Setter.Value>
          </Setter>
          <Trigger.Value>
            <x:Static Member="ExpandDirection.Up" />
          </Trigger.Value>
        </Trigger>
        <Trigger Property="Expander.ExpandDirection">
          <Setter TargetName="ExpandSite" Property="DockPanel.Dock" Value="{x:Static Dock.Left}" />
          <Setter TargetName="HeaderSite" Property="DockPanel.Dock" Value="{x:Static Dock.Right}" />
          <Setter TargetName="HeaderSite" Property="FrameworkElement.Style">
            <Setter.Value>
              <Style TargetType="ToggleButton">
                <Style.Resources>
                  <ResourceDictionary />
                </Style.Resources>
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                      <Border Padding="{TemplateBinding Control.Padding}">
                        <Grid Background="#00FFFFFF" SnapsToDevicePixels="False">
                          <Grid.RowDefinitions>
                            <RowDefinition Height="19" />
                            <RowDefinition Height="*" />
                          </Grid.RowDefinitions>
                          <Grid>
                            <Grid.LayoutTransform>
                              <TransformGroup>
                                <TransformGroup.Children>
                                  <RotateTransform Angle="90" />
                                </TransformGroup.Children>
                              </TransformGroup>
                            </Grid.LayoutTransform>
                            <Ellipse Stroke="#FFA9A9A9" Name="circle" Width="19" Height="19" HorizontalAlignment="Center" VerticalAlignment="Center" />
                            <Path Data="M1,1.5L4.5,5 8,1.5" Stroke="#FF666666" StrokeThickness="2" Name="arrow" HorizontalAlignment="Center" VerticalAlignment="Center" SnapsToDevicePixels="False" />
                          </Grid>
                          <ContentPresenter RecognizesAccessKey="True" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Margin="0,4,0,0" HorizontalAlignment="Center" VerticalAlignment="Top" SnapsToDevicePixels="True" Grid.Row="1" />
                        </Grid>
                      </Border>
                      <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsChecked">
                          <Setter TargetName="arrow" Property="Path.Data">
                            <Setter.Value>
                              <StreamGeometry>M1,4.5L4.5,1 8,4.5</StreamGeometry>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="UIElement.IsMouseOver">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF3C7FB1</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF222222</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                        <Trigger Property="ButtonBase.IsPressed">
                          <Setter TargetName="circle" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF526C7B</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="circle" Property="Shape.StrokeThickness">
                            <Setter.Value>
                              <s:Double>1.5</s:Double>
                            </Setter.Value>
                          </Setter>
                          <Setter TargetName="arrow" Property="Shape.Stroke">
                            <Setter.Value>
                              <SolidColorBrush>#FF003366</SolidColorBrush>
                            </Setter.Value>
                          </Setter>
                          <Trigger.Value>
                            <s:Boolean>True</s:Boolean>
                          </Trigger.Value>
                        </Trigger>
                      </ControlTemplate.Triggers>
                    </ControlTemplate>
                  </Setter.Value>
                </Setter>
              </Style>
            </Setter.Value>
          </Setter>
          <Trigger.Value>
            <x:Static Member="ExpandDirection.Left" />
          </Trigger.Value>
        </Trigger>
        <Trigger Property="UIElement.IsEnabled">
          <Setter Property="TextElement.Foreground">
            <Setter.Value>
              <DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" />
            </Setter.Value>
          </Setter>
          <Trigger.Value>
            <s:Boolean>False</s:Boolean>
          </Trigger.Value>
        </Trigger>
      </ControlTemplate.Triggers>
    </ControlTemplate>
  </Expander.Template>
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</Expander>

M1,4.5L4.5,18,4.5
真的
#FF3C7FB1
#FF222222
真的
#FF526C7B
1.5
#FF003366
真的
真的
M1,4.5L4.5,18,4.5
真的
#FF3C7FB1
#FF222222
真的
#FF526C7B
1.5
#FF003366
真的
IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"