如何将构造函数类型转换为'System.Windows.UIElement'(blockUIContainer)?

时间:2014-03-03 16:23:25

标签: c# wpf

我创建了一个类,我想使用类Rtb(),

的构造函数
public class Rtb
{
    public RichTextBox newRTB;


    public Rtb()
    {
        newRTB = new RichTextBox();
        newRTB.IsReadOnly = true;
        newRTB.MouseDoubleClick += new MouseButtonEventHandler(newRTB_MouseDoubleClick);
    }

    private void newRTB_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
       .....
    }
}

在下面的代码中,我创建了一个Rtb()对象,但此对象无法分配给newBUC.Child,运行后出错:无法将类型'WpfApplication1.Rtb'隐式转换为'System.Windows.UIElement'< / p>

private void menu_Click(object sender, RoutedEventArgs e)
    {
        BlockUIContainer newBUC = new BlockUIContainer();
        newBUC.Margin = new Thickness(50, 10, 50, 10);
        mainMenu.Document.Blocks.Add(newBUC);
        Rtb newnew = new Rtb();
        newBUC.Child = newnew;            
    }

我尝试使用它来投射,并使用“as”,如下所示,但它没有用。我想我可能需要正确的类型来完成作业,我该怎么办?

newBUC.Child = newnew as BlockUIContainer; 
newBUC.Child = (BlockUIContainer) newnew; 

2 个答案:

答案 0 :(得分:1)

您无法将 newnew 添加为Child,因为您的类不会继承自 UIElement 。但你能做什么是将Child设置为名为 newRTB 的基础RichTextBox,它继承自UIElement

newBUC.Child = newnew.newRTB;

答案 1 :(得分:0)

在我的情况下,我错过了对PresentationFramework.dll的引用 位于程序文件* x86(参考汇编¥Microsoft \ FRamewrk \ 3.0 \ 或你的FRamework版本

这让我可以访问我的XAML Partial类上的所有依赖项,因此能够解析

我希望这对你的编码也有帮助,对我有用。