C# 以编程方式设置画布中UIelement的X和Y坐标

C# 以编程方式设置画布中UIelement的X和Y坐标,c#,windows,xaml,windows-runtime,wpf-controls,C#,Windows,Xaml,Windows Runtime,Wpf Controls,管理员:对不起,如果我在错误的论坛上问这个问题,我是整个SE网络的新手 我在一个项目上工作了一段时间,现在我被卡住了。该项目是一个用C和XAML编程的通用Windows 8.1运行时应用程序。下面是项目的Windows 8.1部分中名为updateMapGUI的函数。它在触发事件并将项目添加到页面上预先存在的画布后调用 private void updateMapGUI() { while (mapCanvas.Children.Count > 0) { m

管理员:对不起,如果我在错误的论坛上问这个问题,我是整个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]。左侧和点面板[panelTracker]。向上。根据文档,这个函数可以在画布的任何子级上调用,我不太确定我是否正确阅读了它。编译器说dotpanels[panelTracker]中的画布不包含Up或Left的定义。我做错了什么?如果不可能,我基本上需要做的是在特定的X和Y位置显示一些点。提前感谢您的回复

Canvas.Left和Canvas.Top-not-Up是通过静态getter和setter方法在代码中访问的:

Canvas.SetLeft(dotpanels[panelTracker], getXOffset(i));
Canvas.SetTop(dotpanels[panelTracker], getYOffset(i));

研究如何在画布对象上添加变换。他们有TranslateX和TranslateY属性可以帮助你。我该怎么做呢?我能找到的唯一的例子是关于反向使用它来找到一个点。很抱歉我的noob问题,我对整个XAML和WinRT都是新手