C# 如何在分组扩展器wpf中隐藏togglebutton

C# 如何在分组扩展器wpf中隐藏togglebutton,c#,wpf,xaml,visual-studio-2015,C#,Wpf,Xaml,Visual Studio 2015,我想隐藏或删除显示在分组标题中的togglebutton,而不会丢失功能(用户可以按组上的任意位置来展开/关闭它),但我不知道在当前代码中可以在何处编辑它,或者如何执行其他操作来维护我所拥有的功能。我在下面发布了一张图片和我的组xaml样式代码 没有一个属性可以简单地设置为删除箭头。您需要修改扩展器的模板。试试这个: <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}"> <Setter Pro

我想隐藏或删除显示在分组标题中的togglebutton,而不会丢失功能(用户可以按组上的任意位置来展开/关闭它),但我不知道在当前代码中可以在何处编辑它,或者如何执行其他操作来维护我所拥有的功能。我在下面发布了一张图片和我的组xaml样式代码


没有一个属性可以简单地设置为删除箭头。您需要修改扩展器的模板。试试这个:

<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
    <Setter Property="Template">
        <Setter.Value >
            <ControlTemplate TargetType="{x:Type GroupItem}">
                <Expander x:Name="exp" Background="Firebrick">
                    <Expander.Header>
                        <StackPanel Orientation="Horizontal" Height="40" >
                            <TextBlock Text="{Binding Name}" Margin="0,0,0,0" FontSize="23" VerticalAlignment="Center" Foreground="White" />
                            <TextBlock Text="{Binding ItemCount}" FontSize="25" FontWeight="Bold" Margin="10,0,0,0" VerticalAlignment="Center" Foreground="White" />
                            <TextBlock Text="item(s)" FontSize="25" Margin="10,0,0,0" Width="1000"  VerticalAlignment="Center" Foreground="White"/>
                        </StackPanel>
                    </Expander.Header>
                    <ItemsPresenter />
                    <Expander.Style>
                        <Style TargetType="Expander">
                            <Setter Property="IsExpanded" Value="False"></Setter>
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type Expander}">
                                        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                                            <DockPanel>
                                                <ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}">
                                                    <ToggleButton.Template>
                                                        <ControlTemplate TargetType="{x:Type ToggleButton}">
                                                            <Border Padding="{TemplateBinding Padding}">
                                                                <ContentPresenter Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
                                                            </Border>
                                                        </ControlTemplate>
                                                    </ToggleButton.Template>
                                                </ToggleButton>
                                                <ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                            </DockPanel>
                                        </Border>
                                        <ControlTemplate.Triggers>
                                            <Trigger Property="IsExpanded" Value="true">
                                                <Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Right">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Up">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Left">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="IsEnabled" Value="false">
                                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                                            </Trigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Name}" Value="Title" >
                                    <Setter Property="IsExpanded" Value="True"></Setter>
                                    <Setter Property="IsEnabled" Value="False" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Expander.Style>
                </Expander>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

您可以通过在Visual Studio或Blend中的设计模式中右键单击控件的默认样式/模板,然后选择“编辑模板->编辑副本”,然后根据需要对其进行编辑,将其复制到XAML标记中。

这可能对您有所帮助吗?乔尼
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
    <Setter Property="Template">
        <Setter.Value >
            <ControlTemplate TargetType="{x:Type GroupItem}">
                <Expander x:Name="exp" Background="Firebrick">
                    <Expander.Header>
                        <StackPanel Orientation="Horizontal" Height="40" >
                            <TextBlock Text="{Binding Name}" Margin="0,0,0,0" FontSize="23" VerticalAlignment="Center" Foreground="White" />
                            <TextBlock Text="{Binding ItemCount}" FontSize="25" FontWeight="Bold" Margin="10,0,0,0" VerticalAlignment="Center" Foreground="White" />
                            <TextBlock Text="item(s)" FontSize="25" Margin="10,0,0,0" Width="1000"  VerticalAlignment="Center" Foreground="White"/>
                        </StackPanel>
                    </Expander.Header>
                    <ItemsPresenter />
                    <Expander.Style>
                        <Style TargetType="Expander">
                            <Setter Property="IsExpanded" Value="False"></Setter>
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type Expander}">
                                        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                                            <DockPanel>
                                                <ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}">
                                                    <ToggleButton.Template>
                                                        <ControlTemplate TargetType="{x:Type ToggleButton}">
                                                            <Border Padding="{TemplateBinding Padding}">
                                                                <ContentPresenter Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
                                                            </Border>
                                                        </ControlTemplate>
                                                    </ToggleButton.Template>
                                                </ToggleButton>
                                                <ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                            </DockPanel>
                                        </Border>
                                        <ControlTemplate.Triggers>
                                            <Trigger Property="IsExpanded" Value="true">
                                                <Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Right">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Up">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="ExpandDirection" Value="Left">
                                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
                                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
                                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
                                            </Trigger>
                                            <Trigger Property="IsEnabled" Value="false">
                                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                                            </Trigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Name}" Value="Title" >
                                    <Setter Property="IsExpanded" Value="True"></Setter>
                                    <Setter Property="IsEnabled" Value="False" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Expander.Style>
                </Expander>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>