如何移除WPF中ListView右下角的方形控件?
解决WPF ListView方形控件遮挡亚克力效果的问题
你说的方形控件大概率是ListView默认模板里的滚动条角落填充块,或是选中项的高亮边框,直接修改模板就能解决,以下是具体方案:
方案一:移除滚动条角落填充块
如果是滚动条交汇的空白方块,修改ListView的ControlTemplate,去掉默认的角落填充元素:
<ListView> <ListView.Template> <ControlTemplate TargetType="ListView"> <Border Background="Transparent" BorderThickness="0"> <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" Background="Transparent" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}"> <ItemsPresenter /> </ScrollViewer> </Border> </ControlTemplate> </ListView.Template> </ListView>
方案二:透明选中项/焦点边框
如果是选中项的方形高亮框,修改ListViewItem模板,把选中、焦点状态的背景和边框设为完全透明:
<ListView> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListViewItem"> <Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> </Border> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter TargetName="Bd" Property="Background" Value="Transparent" /> <Setter TargetName="Bd" Property="BorderBrush" Value="Transparent" /> </Trigger> <Trigger Property="IsFocused" Value="true"> <Setter TargetName="Bd" Property="BorderBrush" Value="Transparent" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </ListView.ItemContainerStyle> </ListView>
方案三:快速全局透传背景
如果上面两种方案没起效,直接给ListView及内部滚动视图设置透明背景,同时去掉边框:
<ListView Background="Transparent" BorderThickness="0" ScrollViewer.Background="Transparent"> <!-- 你的列表内容 --> </ListView>
注意:如果用了亚克力效果,要确保ListView的父容器也设置Background="Transparent",保证背景透传生效。
内容的提问来源于stack exchange,提问作者RandomUserOnTheInternet
相关产品推荐
相关产品推荐

