簡體   English   中英

擺脫 ListView 中的 1 像素填充/邊框間隙?

[英]Get rid of a 1 pixel padding/border gap in a ListView?

看這個!
打破!
我真的需要擺脫這個!
看聲明!

<ListView Name="list" BorderThickness="0">

我如何解決它?
這種差距不僅發生在滾動條上,也發生在項目上,無論是否有任何視圖。

看起來像Template中的一個問題,很可能是內部控件的屬性,該屬性未綁定到 ListBox 向您公開的任何屬性。

Vercas 編輯:我發現了問題。
這是ListView的模板:

<ControlTemplate x:Key="ListView" TargetType="ListBox">
    <Border Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Name="Bd" Padding="1" SnapsToDevicePixels="True">
        <ScrollViewer Focusable="False" Padding="{TemplateBinding Control.Padding}">
            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
        </ScrollViewer>
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property="UIElement.IsEnabled" Value="False">
            <Setter Property="Border.Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
        </Trigger>
        <Trigger Property="ItemsControl.IsGrouping" Value="True">
            <Setter Property="ScrollViewer.CanContentScroll" Value="False" />
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

只需將邊框的Padding更改為 0 即可。
如果您不想費心尋找房產,這就是結果。

<ControlTemplate x:Key="ListView" TargetType="ListBox">
    <Border Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Name="Bd" Padding="0" SnapsToDevicePixels="True">
        <ScrollViewer Focusable="False" Padding="{TemplateBinding Control.Padding}">
            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
        </ScrollViewer>
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property="UIElement.IsEnabled" Value="False">
            <Setter Property="Border.Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
        </Trigger>
        <Trigger Property="ItemsControl.IsGrouping" Value="True">
            <Setter Property="ScrollViewer.CanContentScroll" Value="False" />
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

不要忘記將此模板添加到您的ListView

如果你有它,這將更容易在 Blend 中修復。 如果沒有,可以免費試用。 您必須為您在該列表中使用的滾動查看器生成控制模板的副本。 從那里您可以編輯 ScrollBar 的模板。

滾動條模板將是幾個級別的模板,一旦你得到它。 ListView 模板>ItemsPresenter(在本例中為包裝面板)模板> ScrollViewer 模板> ScrollBar 模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM