如何修复ItemScontrol中的自动垂直滚动栏空间



非常简单的场景,但我浪费了很多时间,所以我在这里问。我有一个WPF应用程序。

那里有一个具有垂直滚动条的自动和水平卷轴可见性的可见性。现在,当我开始在其中添加项目时,就像有2个项目,并且由于自动而没有垂直滚动条。现在,当我添加第三个项目时,垂直滚动条变得可见,内容朝左移动了约15个像素。

看起来很奇怪,我希望内容保持相同的位置,并且只有滚动条可见或崩溃。

我尝试将保证金设置为内部项目或填充列表视图。但是什么都没有。

尝试以下内容:向您的GUI添加scrollviewer控件,右键单击 ->编辑模板 ->编辑复制

现在是您正在寻找的东西:

<ControlTemplate x:Key="ScrollViewerControlTemplateOwn" TargetType="{x:Type ScrollViewer}">
        <Grid x:Name="Grid" Background="{TemplateBinding Background}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="auto"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="auto"/>
            </Grid.RowDefinitions>

auto 列的设置和行定义在可见或不见时会导致宽度的变化。如果将这些 auto 值更改为例如20显示器不会改变宽度或高度。要将这样的scrollviewer添加到listView中,请与listView进行相同的"编辑副本"事物,然后将scrollviewer设置为"自己的"模板:

<ControlTemplate TargetType="{x:Type ListView}">
                    <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="1" SnapsToDevicePixels="true">
                        <ScrollViewer Focusable="false" Style="{Binding ScrollViewerControlTemplateOwn}" Padding="{TemplateBinding Padding}">

希望有帮助:)

最新更新