我正在制作自己的绘图库,但我遇到了一个问题。我有以下代码将我的折线放在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.我想到的是以下内容:
布局:页面标题
一些填写(列表框,复选框等)
在底部:我的图表(折线)
我如何完成这样的事情?
答案 0 :(得分:2)
您需要了解Silverlight Layout System,屏幕上每个元素的位置由它所在的面板决定。一些面板,例如StackPanel
,'堆叠'他们的每个孩子,所以没有两个项目可以重叠。而Grid
和Canvas
等其他人允许重叠。
答案 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
。您可以通过依赖项属性Canvas
和Top
按绝对坐标在Left
中定位控件。