以编程方式在Canvas中设置元素的X和Y坐标
本文关键字:坐标 元素 设置 方式 编程 Canvas | 更新日期: 2023-09-27 18:17:06
管理员:对不起,如果我问错了论坛,我是整个SE网络的新手。
我做一个项目已经有一段时间了,现在我卡住了。该项目是一个用c#和XAML编写的通用Windows 8.1运行时应用程序。下面是项目的Windows 8.1部分的一个函数,称为updateMapGUI()。它在事件被触发后被调用,并向页面上已有的画布添加项目。
private void updateMapGUI()
{
while (mapCanvas.Children.Count > 0)
{
mapCanvas.Children.RemoveAt(0);
}
panelTracker = 0;
foreach (User i in activeUsers)
{
if(i == null)
{
return;
}
else
{
//Update the mapCanvas with data from the appropriate User object from the array activeUsers[]
dotpanels[panelTracker] = new Canvas();
mapCanvas.Children.Add(dotpanels[panelTracker]);
dotpanels[panelTracker].Height = 3;
dotpanels[panelTracker].Width = 3;
dotpanels[panelTracker].Left = getXOffset(i);
dotpanels[panelTracker].Up = getYOffset(i);
if (i.isSelected == false)
{
SolidColorBrush unselectedDot = new SolidColorBrush(Windows.UI.Colors.Blue);
dotpanels[panelTracker].Background = unselectedDot;
}
else
{
SolidColorBrush selectedDot = new SolidColorBrush(Windows.UI.Colors.Green);
dotpanels[panelTracker].Background = selectedDot;
}
panelTracker++;
}
}
}
dotpanels是一个canvas[]数组,而panelTracker是一个int[]数组。问题在于点面板[panelTracker]。Left和dotpanels[panelTracker]. up。根据文档,这个函数可以在画布的任何子元素上调用(不太确定我是否读对了)。编译器说,dotpanels[panelTracker]中的Canvas不包含向上或向左的定义。我做错了什么?如果不可能,我基本上需要做的就是在特定的X和Y位置显示一些点。提前感谢您的回复!
Canvas.Left
和Canvas.Top
(不是Up
)是附加属性,可以通过静态getter和setter方法在代码中访问:
Canvas.SetLeft(dotpanels[panelTracker], getXOffset(i));
Canvas.SetTop(dotpanels[panelTracker], getYOffset(i));