WPF问题(SizeChanged事件,滚动查看器+画布)

WPF问题(SizeChanged事件,滚动查看器+画布)

问题描述:

我试图把一个ScrollViewer包裹在画布(一些信号的图表),但我似乎无法得到它的工作。WPF问题(SizeChanged事件,滚动查看器+画布)

首先,我有一个用户控件,它是一个2d线条图(来自我正在遵循的一本书),并且我正试图修改它以便为我自己的用途进行定制。相关配件有:

我的应用程序(Window1.xaml)

<Grid Grid.Column="1" Grid.Row="2"> 

     <local:LineChartControlLib x:Name="originalChart" Xmin="0" Xmax="51.2" Ymin="-3" Ymax="3" Background="White" Title="" GridlinePattern="DashDot" /> 

    </Grid> 

的用户控件:

<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中周围的任何画布的网格中,画布不显示,执行时间非常慢。如果我在用户控件的网格或Canvas周围放置了ScrollViewer,“chartGrid_SizeChanged”事件会重复触发(无限次)。任何人都可以启发我对我不了解的事情吗?非常感谢。

画布面板不适合滚动查看器。有关更多信息,请参阅此post