首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIElement不能在不同的名称空间内更改

UIElement不能在不同的名称空间内更改
EN

Stack Overflow用户
提问于 2019-05-14 08:05:50
回答 2查看 67关注 0票数 0

编辑:对于新程序员OOP来说,仅仅调用类是不够的,如果语法正在寻找特定的变量类型,它就会抛出一个错误。正如下面的答案所指出的那样,这就是问题所在,这一行代码:

代码语言:javascript
运行
复制
System.Windows.Controls.Canvas.SetLeft(Gate_list[Gate_list.Count - 1], Pos.X);

它有一个致命的错误,那就是Canvas.SetLeft正在寻找一个画布子类(在本例中是一个矩形)和一个点。但是,当类类型为Gate_list[Gate_list.Count - 1]时,我发送了一个类类型的Gate_list[Gate_list.Count - 1].GetRect()

编辑结束

我有一个委托,它在方法中调用类。委托正在检测Rectangle(Here is how it's done)上的鼠标向下事件。在这个方法中,我尝试在一个SetLeft上使用Rectangle,我只是将它添加到Canvas中,但是得到了错误CS1503。

我尝试过将其转换为System.Windows.UIElement,但系统无法转换。

代码语言:javascript
运行
复制
public partial class Program
{
    public void Rect_Button_MouseDown(MainWindow MainWind, string Tag)
    {
        Point Pos = new Point();
        Pos = System.Windows.Input.Mouse.GetPosition(MainWind.Main_Canvas);
        if (Drag == false)
        {
            Drag = true;
            Gate_list.Add(new Gate_Class(Convert.ToInt32(Tag),new Rectangle()));
            MainWind.Main_Canvas.Children.Add(Gate_list[Gate_list.Count-1].Get_Rect());
            System.Windows.Controls.Canvas.SetLeft(Gate_list[Gate_list.Count - 1], Pos.X);
        }
    }
}

我认为应该有一个客场来转移system.windows,但我不知道。

我的问题在于找到一种将Gate_list[]转换为UIElement的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-14 08:25:29

Gate_Class显然不是UIElement。它应该有一个Rectangle属性,返回传递给其构造函数的Rectangle。然后,可以设置Canvas.Left属性的Rectangle

代码语言:javascript
运行
复制
System.Windows.Controls.Canvas.SetLeft(Gate_list[Gate_list.Count - 1].Rectangle, Pos.X);
代码语言:javascript
运行
复制
public class Gate_Class
{
    public Gate_Class(int tag, Rectangle rectangle)
    {
        //...
        Rectangle = rectangle;
    }

    public Rectangle Rectangle { get; }
}
票数 1
EN

Stack Overflow用户

发布于 2019-05-14 08:21:25

我认为在您的代码的最后一行中,您提供了Gate_list[Gate_list.Count - 1],但这是您的自定义类,而不是您刚刚创建的Rectangle。我可以从您的代码中推断,您可以通过使用Rectangle获得Gate_list[Gate_list.Count - 1].Get_Rect()

换句话说,在我看来,需要添加.Get_Rect()才能真正得到矩形。

如果这不起作用,请提供您的Gate_Class代码和您正在收到的错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56125696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档