0

我在用户控件中嵌入了一个图表

PlotControl.xaml (PlotControl.xaml.cs)

此绘图控件用于 MVVM 中的视图。

现在!当我更新 PlotControl 的 UI(例如,我在图表上绘制垂直和水平标记)时,这些更新在 View 上不可见(除非我双击 View 或执行 Minimize-Maximize 窗口)。

有没有办法在 View 上自动更新更新的 UI?

查看代码如下:

<Grid Margin="4">
   <nms:PlotControl  x:Name="PlotControl" Margin="10,10" DockPanel.Dock="Right" />
</nms:PlotControl>

PlotControl.xaml.cs 代码的片段如下所示:

ChartPanel cpnl = new ChartPanel();
chart.View.Layers.Add(cpnl);

ChartMarker rightVerticalMarker = new ChartMarker(chart, MarketType.RightVertical);
rightVerticalMarker.DataPoint = new Point(30, double.NaN);

cpnl.Children.Add(rightVerticalMarker);
cpnl.UpdateLayout();
chart.UpdateLayout();

ChartMarker 只是由枚举 MarketType 定义的水平线(或垂直线)。

注意:自从两天以来我一直在寻找这个问题,但我无法找到解决方案。

4

1 回答 1

0

Updates can be forced by Arrange methods. Here is what I have found, which solved my problem.

Size userControlSize = this.RenderSize; //original size of userControl
Size chartSize = chart.RenderSize;    // original size of chart
chart.Arrange(chart.View.PlotRect); // forcing layout elements on chart
chart.Arrange(new Rect(chartSize)); // setting the chart size to original value
Arrange(new Rect(userControlSize)); // setting the userControl size to original value
于 2013-08-29T12:07:22.140 回答