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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top