3

我有一个基类调用 PopupWindow,它继承自 UserControl。PopupWindow 没有关联的 xaml 页面,它只是一个继承自 UserControl 的常规类

然后我有另一个继承自 PopupWindow 的 UserControl。现在这是一个适当的用户控件,它具有关联的 xaml 页面。

我已将根 xaml 标记更改为像这样的 PopupWindow

<local:PopupWindow
  .....
</local:PopupWindow>

其中 local 是此 PopupWindow 中存在的命名空间。

但是我不断收到一个错误,即 PopupWindow 在给定的命名空间中不存在。

我究竟做错了什么?

谢谢

4

1 回答 1

2

我设法让这个工作如下:

家长控制:

public class PopupWindow : UserControl
{
}

继承控制:

后面的代码:

public partial class PopupWindowChild
{
    public PopupWindowChild()
    {
        InitializeComponent();
    }
}

XAML:

<Controls:PopupWindow x:Class="MyNamespace.Controls.PopupWindowChild"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MyNamespace.Controls">
    <TextBlock Text="Blah" />
</Controls:PopupWindow>

主视图:

<Window x:Class="MyNamespace.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="clr-namespace:MyNamespace.Controls">
    <Controls:PopupWindow />
</Window>

在生成代码之前,您的 XAML 不会识别您的控件。一旦构建并运行,我会在我的主视图中看到“Blah”,正如预期的那样。

于 2013-05-30T09:01:16.730 回答