Base UserControl Class in Windows 8 XAML Metro App
-
30-10-2019 - |
Domanda
Sto lavorando a un'app Metro usando XAML & C#. Ho iniziato questo usando WPF in Win7. Ho creato una classe base, ereditando da UserControl, quindi ho provato a metterlo nel mio XAML.
In Windows 7, ha funzionato alla grande:
<MyType:AnImplementation
...
xmlns:MyType="clr-namespace:MyAppNamespace"
/>
Ho provato la stessa cosa in Win8, ma sfortunatamente ricevo errori -
<MyType:AnImplementation
...
xmlns:MyType="using:MyAppNamespace"
/>
Ora produce questo: CompilexAML Task non è riuscito inaspettatamente. Quindi un'eccezione di riferimento nulla.
Non sono un mago WPF, quindi potrei farlo completamente, di recente ho iniziato a farci entrare, ma ho problemi a isolare questo problema. È una sorta di problema di pollo/uova o esiste un modo diverso per creare controlli utente personalizzati in Win8 XAML?
modificare: Ho pensato che potesse essere utile essere più chiari. Non ho difficoltà a creare controlli degli utenti, ho difficoltà a creare UserControls che sono del mio tipo di base, che eredita UserControl
. Per esempio:
Una classe base, chiameremo myBaseType, che eredita da UserControl e ha alcuni metodi virtuali:
public class MyBaseType : UserControl
{
public MyBaseType() : base() {}
}
Un nuovo UserControl, chiamato ActionTile:
public partial class ActionTile : MyBaseType {}
Quando lo metto nel mio xaml:
<myType:MyBaseType
... (other XAML imports)
xmlns:myType="using:MyNamespace"/>
Il compilatore esplode.
Se vuoi replicare, crea una classe di base eredita UserControl
, Quindi implementa un controllo ereditando dalla classe base e prova a creare un nuovo UserControl di quel nuovo tipo. Come ho detto, funziona bene in WPF su Windows 7.
Nessuna soluzione corretta