0

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

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

LayoutRoot.Children.Add(graph.line);

(它在开始调用中,因为我在计时器超时(毫秒)调用的 timer_tick void 内执行此操作

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

布局:页面标题

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

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

我该如何完成这样的事情?

4

2 回答 2

2

您需要了解Silverlight 布局系统,屏幕上每个元素的位置由它所在的面板决定。一些面板,例如StackPanel,“堆叠”他们的每个孩子,这样两个项目就不能重叠。而其他人喜欢GridCanvas允许重叠。

于 2012-04-17T07:39:54.073 回答
2

如果您使用GridforLayoutRoot您必须设置图表的行和列:

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

我个人会以不同的方式进行操作,并为我的图形使用单独的控件,例如 a Canvas,因此布局如下所示:

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

然后将图表添加到 Canvas 而不是LayoutRoot. Canvas您可以通过依赖属性Top和绝对坐标将控件定位在 a 中Left

于 2012-04-17T07:44:09.577 回答