如何在分组扩展器wpf中隐藏togglebutton(How to hide togglebutton in grouping expander wpf)

编程入门 行业动态 更新时间:2024-10-16 00:23:18
如何在分组扩展器wpf中隐藏togglebutton(How to hide togglebutton in grouping expander wpf)

我想要隐藏或删除出现在我的分组标题中的togglebutton而不会丢失功能(用户可以按组上的任何位置来展开/关闭它),但我无法弄清楚我可以在当前代码中编辑它的位置,或者如何可以我这样做是为了维持我拥有的东西。 我在下面发布了一个图像和我的组xaml样式代码。

https://i.imgur.com/7NjF4AS.png

<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> </ItemsPresenter> <Expander.Style> <Style TargetType="Expander"> <Setter Property="IsExpanded" Value="False"></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>

I want to hide or remove the togglebutton which appears in my grouping headers without losing functionality (User can press anywhere on the group to expand/close it) but I can't figure out where I can edit it in my current code or how can I do it otherwise to maintain what I have. I posted an image and my group xaml style code below.

https://i.imgur.com/7NjF4AS.png

<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> </ItemsPresenter> <Expander.Style> <Style TargetType="Expander"> <Setter Property="IsExpanded" Value="False"></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>

最满意答案

没有财产,你可以设置摆脱箭头。 您需要修改扩展器的模板。 尝试这个:

<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标记中,然后选择编辑模板 - >编辑副本,然后按照您的要求进行编辑。

There is no property that you simply can set to get rid of the arrow. You need to modify the template of the Expander. Try this:

<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>

You can copy the default style/template of a control into your XAML markup by right-clicking on it in design mode in Visual Studio or in Blend and choose Edit Template->Edit a copy and then edit it as per your requirements.

更多推荐

本文发布于:2023-08-01 21:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1365980.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何在   wpf   togglebutton   expander   grouping

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!