WPF问题(SizeChanged事件、scrollviewer和画布)

WPF问题(SizeChanged事件、scrollviewer和画布),wpf,Wpf,我试图将ScrollViewer包装在画布上(一些信号的图表),但我似乎无法让它工作 首先,我有一个用户控件,它是一个生成2d线条图的控件(来自我正在关注的一本书),我正在尝试修改它以自定义它以供我自己使用。有关部分包括: 我的应用程序(Window1.xaml) 用户控件: <Grid Margin="0" x:Name ="chartGrid" Grid.Column="1" Grid.Row="1" ClipToBounds="True" Background="Tran

我试图将ScrollViewer包装在画布上(一些信号的图表),但我似乎无法让它工作

首先,我有一个用户控件,它是一个生成2d线条图的控件(来自我正在关注的一本书),我正在尝试修改它以自定义它以供我自己使用。有关部分包括:

我的应用程序(Window1.xaml)


用户控件:

    <Grid Margin="0" x:Name ="chartGrid" Grid.Column="1" Grid.Row="1" ClipToBounds="True" Background="Transparent" SizeChanged="chartGrid_SizeChanged" />
    <Canvas Margin="2" Name="textCanvas" ClipToBounds="True" Grid.Column="1" Grid.Row="1">
        <Canvas Name="chartCanvas" ClipToBounds="False">
            <Canvas Name="legendCanvas" Background="Transparent" />
        </Canvas>
    </Canvas>


如果我在我的应用程序中的任何画布网格周围放置一个ScrollViewer,画布都不会显示,而且执行时间非常慢。如果我在用户控件中的网格或画布周围放置一个ScrollViewer,“chartGrid_SizeChanged”事件会被反复(无限)触发。有人能告诉我我不明白的事情吗?非常感谢。

画布面板无法与ScrollViewer配合使用。有关更多信息,请参见此

    <Grid Margin="0" x:Name ="chartGrid" Grid.Column="1" Grid.Row="1" ClipToBounds="True" Background="Transparent" SizeChanged="chartGrid_SizeChanged" />
    <Canvas Margin="2" Name="textCanvas" ClipToBounds="True" Grid.Column="1" Grid.Row="1">
        <Canvas Name="chartCanvas" ClipToBounds="False">
            <Canvas Name="legendCanvas" Background="Transparent" />
        </Canvas>
    </Canvas>