将项目添加到画布时,我的对象无法转换

时间:2019-01-26 16:01:11

标签: c# uwp

我已经创建了一个线条集合,作为一个对象,我想将其添加到画布中。当我尝试调用该方法时,系统告诉我它无法转换,在使用children.add

进行调用时

我的代码如下:

        TimberMember first = new TimberMember(38, 2000, "Horiz");
        first.DrawMember();
        SimpleCanvas.Children.Add(**first**);

'TimberMember'是我的对象,单词'first'变成红色的波浪线,参数说'无法从'Mapping.TimberMember'转换为'Windows.UI.Xaml.UIElement'

任何帮助将不胜感激, 谢谢, 马修

2 个答案:

答案 0 :(得分:0)

画布是一个XAML控件,它提供了其他XAML控件。 TimberMember不是XAML控件。 XAML控件是UIElement类型的对象,或者它们必须从UIElement类型继承。 TimberMember将需要继承自UIElement或继承自UIElement的类型,例如ContentControl。

public class TimberMemeber : ContentControl
{
// Your class definition
}

这将允许您将其添加到“画布”中,但对您没有多大帮助,因为它的任何属性都不会转换为UI内容。您没有告诉我们TimberMember是什么,或者它应该做什么,更不用说提供类定义了。我几乎可以100%保证使其成为自定义XAML控件并将其添加到Canvas中不是实现您要执行的操作的正确方法,也不是尝试创建自定义XAML控件对某人来说是个好主意仍在学习OOP基础知识。

答案 1 :(得分:0)

实际上,我最终设法弄清楚了。如果我在木材元素旁边引用Canvas类,则可以将其作为子元素添加,然后在画布中正确绘制它。