Votre code devrait fonctionner. J'ai créé votre classe de base abstraite et un nouveau contrôle basé sur cette classe.
<local:PartBase
x:Class="UWPTest.Controls.MyUserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UWPTest.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
<Button>Test</Button>
</Grid>
</local:PartBase>
Vérifier que le xmlns:local="using:UWPTest.Controls"
est correcte avec l'espace de noms PartBase
est déclarée. Ensuite reconstruisez votre solution et l'erreur doit disparaître (vous verrez l'erreur si vous ne reconstruisez pas).
Sur une page (par exemple MainPage) Je peux simplement utiliser la commande:
<Page
x:Class="UWPTest.MainPage"
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:controls="using:UWPTest.Controls"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<controls:MyUserControl1 />
</Grid>
</Page>
Notez le xmlns:controls
pointant vers l'espace de noms correct. Le concepteur donnera également une erreur jusqu'à ce que vous reconstruire l'application.
Tout construit ici et l'application s'exécute, donc si vous avez toujours l'erreur après avoir vérifié toutes les déclarations d'espace de noms, vous devrez mettre en ligne un repro pour que nous puissions vérifier ce qui ne va pas.
L'héritage est hors sujet sur SO? agréable. quel âge avez-vous fils? –
Comment définissez-vous l'espace de noms 'local' dans le XAML de MyPart? –
local représente l'espace de noms dans lequel la PartBase est définie. donc tout va bien. voir mon commentaire sur la réponse @bart - il est plus probable qu'un bogue VS 2017. cela fonctionne dans une application de test, mais pas dans l'application "principale", si je supprime "abstrait" cela fonctionne aussi .. pas juste. –