2012-06-03 18 views
6

Possible Duplicate:
Inheriting from a UserControl in WPFMyUserControl non può essere la radice di un file XAML perché è stato definito utilizzando XAML

Sto cercando di creare un controllo utente WPF, che è derivato da un altro controllo utente, che ho anche definito.

<myNamespace:NavigationControl 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:myNamespace="clr-namespace:myNamespace" mc:Ignorable="d" 
x:Class="myNamespace.WelcomeScreen" 
x:Name="UserControl" 
d:DesignWidth="640" d:DesignHeight="480"> 

ed ecco cosa WelcomeScreen.cs assomiglia:

public partial class WelcomeScreen : NavigationControl 
{ 
    public WelcomeScreen() 
    { 
     this.InitializeComponent(); 
    } 
} 

Quando compilo questo, ottengo errore seguente:

'myNamespace.NavigationControl' cannot be the root of a XAML file because it was defined using XAML.

Che cosa sto facendo di sbagliato?

+0

per WPF soluzione con Visual eredità vedere: http://svetoslavsavov.blogspot.gr/2009/09/user-control-inheritance-in-wpf.html o per definire esplicitamente la GUI nella antenato vedi http: // support.microsoft.com/kb/957231 –

risposta

5

Non sono destinati a fare questo e l'errore che dice.

Inoltre, utilizzando XAML si imposta Content, se lo si imposta nuovamente nel controllo derivato si perderà tutto ciò che è stato definito in precedenza. Se si desidera ereditarietà e riusabilità, utilizzare un controllo personalizzato (e creare un rispettivo ControlTemplate).

10

vedere l'articolo Microsoft Knowledge: http://support.microsoft.com/kb/957231. La derivazione dei controlli utente in XAML non è supportata; devi derivare i controlli utente nel codice.

Problemi correlati