如何在所有元素 wpf 上制作滚动条?

How to make scrollbar over all of the elements wpf?

有一个包含列表视图的滚动查看器,滚动查看器上有列表视图。当在列表视图上滚动时它不会滚动但是当你滚动列表视图时(在不在列表视图后面的滚动查看器区域)。我该如何解决这个问题? 我的代码:

 <ScrollViewer Background="#111" HorizontalScrollBarVisibility="Disabled" FlowDirection="LeftToRight" Grid.Row="1" >

            <Grid Grid.Row="1">
                <StackPanel   Background="#111" HorizontalAlignment="Center">

                    <ListView  BorderThickness="2" HorizontalAlignment="Right" ItemsSource="{Binding MyList}">
                     
                            //My codes

                    </ListView>



                </StackPanel>
            </Grid>

   </ScrollViewer>

ScrollViewer 使内容可以在比其实际大小更小的区域中显示。滚动所有元素,你可以尝试参考下面的代码。

<Window x:Class="ScrollDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ScrollDemo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <ScrollViewer>
        <Grid Height="500">
            <Grid.RowDefinitions>
                <RowDefinition Height="30"/>
                <RowDefinition Height="100"/>
            </Grid.RowDefinitions>
            <TextBlock Text="scroll"/>
            <ScrollViewer  Background="#111" HorizontalScrollBarVisibility="Disabled" FlowDirection="LeftToRight" Grid.Row="1" >
                <ListView  x:Name="lv" BorderThickness="2" HorizontalAlignment="Right" ItemsSource="{Binding }">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Name}"/>
                            <GridViewColumn Width="100" Header="Age" DisplayMemberBinding="{Binding Age}"/>
                        </GridView>
                    </ListView.View>
                </ListView>
            </ScrollViewer>
        </Grid>
    </ScrollViewer>
</Window>

MainWindow.xaml.cs:

using System.Collections.Generic;
using System.Windows;
namespace ScrollDemo
{
  public partial class MainWindow : Window
  {
    List<Item> MyList;
    public MainWindow()
    {
      InitializeComponent();
      MyList = new List<Item>();
      for (int i = 0; i < 10; i++)
      {
        MyList.Add(new Item(){  Name= $"list{ i }",Age=i });
      }
      lv.ItemsSource=MyList;
    }
  }
  public class Item
  {
    public string Name { get;set;}
    public int Age { get;set;}
  }
}

The result