WPF问题(SizeChanged事件,scrollviewer + canvas)

时间:2010-10-15 18:54:56

标签: wpf

我试图将ScrollViewer包裹在Canvas(一些信号图表)周围,但我似乎无法让它工作。

首先,我有一个用户控件是一个制作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>

UserControl:

    <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”事件。任何人都可以启发我对我不理解的事情吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

“画布”面板与滚动查看器不兼容。有关详细信息,请参阅此post