gpt4 book ai didi

WPF ListView在内部布局面板周围有一个像素边框。我如何摆脱它?

转载 作者:行者123 更新时间:2023-12-04 09:33:40 35 4
gpt4 key购买 nike

我有一个这样的ListView:

<ListView 
x:Name="SeriesListView"
SnapsToDevicePixels="True"
ItemsSource="{Binding Items}"
BorderBrush="Transparent" BorderThickness="0"
Padding="0" Margin="0"
VerticalContentAlignment="Top"
Background="Purple"
LostFocus="ListView_LostFocus"
>

<ListView.ItemsPanel>
<ItemsPanelTemplate>
<local:LDSeriesPanel
SnapsToDevicePixels="True"
MaxWidth="{Binding ElementName=itControl,Path=ActualWidth}"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
MinHeight="{x:Static local:LDSeriesPanel.MIN_HEIGHT}"
MinWidth="{x:Static local:LDSeriesPanel.MIN_WIDTH}"
Margin="0"
Background="Aquamarine"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>

当它为空时,我定义的自定义面板的宽度和高度为15 x15。我可以确认它们是运行时的实际尺寸。但是,ListView本身的尺寸为17 x 17(即面板和ListView之间的一个像素边框)。

从定制面板开始,然后沿着树走,我得到了以下祖先:
  • ItemsPresenter:15x15
  • ScrollViewer:15x15
  • 网格:15x15
  • ScrollViewer:15x15
  • 边框:17x17
  • ListView:17x17

  • 如果我将ListView上的Padding更改为-1,它将删除边框,但会导致其他一些问题。

    我希望避免重新模板化整个ListView。其他一切工作正常。有什么方法可以删除一个像素边框,可能是通过样式吗?

    最佳答案

    我只是看了ListView的默认模板,确实Border的显式填充为1 ...所以我认为如果不重新定义模板就无法做到这一点。无论如何,这并不是很困难:只需使用StyleSnooper或ShowMeTheTemplate之类的工具复制默认模板(我认为Blend也可以做到),然后更改所需的内容...

    关于WPF ListView在内部布局面板周围有一个像素边框。我如何摆脱它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3080273/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com