将Polyline置于一切之上

时间:2012-04-17 07:30:20

标签: c# windows-phone-7 graph plot polyline

我正在制作自己的绘图库,但我遇到了一个问题。我有以下代码将我的折线放在windowsphone页面上:

System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
{
    graph.AddSinglePoint(x);
    graph.Update();
    LayoutRoot.UpdateLayout();
}); 

LayoutRoot.Children.Add(graph.line);

(它在一个开始调用中,因为我在timer_tick void中执行此操作,该定时器超时(ms)调用

唯一的问题是,当我想让我的图表在表格上位置较低时(例如y = 300 +实际的Y值)。它将我表格上的所有内容都缩减了300.我想到的是以下内容:

  

布局:页面标题

     

一些填写(列表框,复选框等)

     

在底部:我的图表(折线)

我如何完成这样的事情?

2 个答案:

答案 0 :(得分:2)

您需要了解Silverlight Layout System,屏幕上每个元素的位置由它所在的面板决定。一些面板,例如StackPanel,'堆叠'他们的每个孩子,所以没有两个项目可以重叠。而GridCanvas等其他人允许重叠。

答案 1 :(得分:2)

如果您对Grid使用LayoutRoot,则必须设置图表的行和列:

   Grid.SetRow(graph,2);
   Grid.SetColumn(graph,...);

我个人会这样做,并为我的图形使用单独的控件,例如Canvas,所以布局如下:

Layout: Page Title
Some filling (listboxes, checkboxes, etc)
At the bottom: Canvas

然后将图形添加到Canvas而不是LayoutRoot。您可以通过依赖项属性CanvasTop按绝对坐标在Left中定位控件。