WPF 菜单实现一级二级按钮下拉格式

发布于:2025-03-20 ⋅ 阅读:(40) ⋅ 点赞:(0)

 <Expander Width="240" x:Name="myExpander">
     <Expander.Header>
         <StackPanel Orientation="Horizontal" >
             <TextBlock Text="内容"  />
             <Image Width="20" Margin="15,0,0,0">
                 <Image.Style>
                     <Style TargetType="Image">
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding IsExpanded, ElementName=myExpander}" Value="True">
                                 <Setter Property="Source" Value="图片路径1"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding IsExpanded, ElementName=myExpander}" Value="False">
                                 <Setter Property="Source" Value="图片路径2"/>
                             </DataTrigger>
                         </Style.Triggers>
                     </Style>
                 </Image.Style>
             </Image>
         </StackPanel>
     </Expander.Header>
     <Expander.Template>
         <ControlTemplate TargetType="Expander">
             <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
                 <DockPanel>
                     <ToggleButton x:Name="HeaderSite"   HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"  VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" DockPanel.Dock="Top"/>
                     <ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" Visibility="Collapsed" Margin="{TemplateBinding Padding}">
                         <ContentPresenter.LayoutTransform>
                             <TransformGroup>
                                 <TranslateTransform x:Name="ExpandTranform"/>
                             </TransformGroup>
                         </ContentPresenter.LayoutTransform>
                     </ContentPresenter>
                 </DockPanel>
             </Border>
             <ControlTemplate.Triggers>
                 <Trigger Property="IsExpanded" Value="True">
                     <Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
                 </Trigger>
             </ControlTemplate.Triggers>
         </ControlTemplate>
     </Expander.Template>
     <StackPanel>
         <RadioButton Content="RadioButton按钮"  />
     </StackPanel>
 </Expander>