2012-04-17 58 views
0

我正在打造我自己的绘图库,但我遇到了问题。我有下面的代码把我的折线的WindowsPhone的页面上:在所有东西上放置折线

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

LayoutRoot.Children.Add(graph.line); 

(其在一开始调用,因为我做这timer_tick虚空当中由定时器超时称为内(毫秒)

唯一的问题是,当我想让我的图形在窗体上的位置更低时(例如y = 300 +实际的Y值),它将表单上的所有内容压低了300.我想到的是以下内容:

布局:页面标题

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

在底部:My图表(折线)

如何acomplish类似的东西?

回答

2

如果使用GridLayoutRoot你必须设置你的图表的行和列:

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

我个人会采取不同的方式,并使用单独的控制我的图表,例如Canvas,使布局是这样的:

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

然后将图形添加到画布上,而不是LayoutRoot的。您可以通过依赖属性TopLeft通过绝对坐标将控件定位在Canvas中。

2

您需要了解Silverlight Layout System,屏幕上每个元素的位置取决于它所在的面板。一些面板(如StackPanel)将他们的每个孩子“堆叠”,以便两个项目不能重叠。而其他人喜欢GridCanvas允许重叠。

+0

感谢您的快速回复。我已经实施了pivotnig的方法,并且工作正常。 – 2012-04-17 08:25:41