2013-05-30 148 views
3

我有一個從UserControl繼承的基類調用PopupWindow。 PopupWindow沒有關聯的xaml頁面,它只是一個繼承自UserControl的常規類c#UserControl基類繼承

然後我有另一個UserControl繼承自PopupWindow。現在這是一個適當的用戶控件,它有一個關聯的xaml頁面。

我已經改變了根XAML標記是PopupWindow這樣

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

,當地在這PopupWindow命名空間存在。

但我不斷收到一個錯誤,指出PopupWindow在給定的命名空間中不存在。

我在做什麼錯?

感謝

回答

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」。

+0

這很好,你有它的工作。如果PopupWindow使用泛型,例如公共類PopupWindow :UserControl? –

+0

偉大的東西,很高興我能夠幫助。請確保標記答案!查看[this](http://jamescrisp.org/2008/05/26/wpf-control-inheritance-with-generics/)瞭解更多關於泛型WPF控件的信息。 – Rob