您的代碼應該工作。我已經創建了你的抽象基類和一個基於這個類的新控件。
<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>
仔細檢查了xmlns:local="using:UWPTest.Controls"
是與命名空間PartBase
在聲明是正確的。然後重建您的解決方案和錯誤應該消失(你會看到錯誤,如果你不重建)。
在一個頁面(例如的MainPage)我可以簡單地使用控制:
<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>
注意xmlns:controls
指向正確的命名空間。設計師也會在重建應用程序之前給出錯誤。
一切都在這裏建立和運行應用程序,所以如果你仍然有錯誤雙重檢查所有namepace聲明之後,你必須把攝製網上,這樣我們可以檢查還有什麼不順心。
繼承是題外話對SO?不錯。你的兒子多大了? –
如何在MyPart的XAML中定義名稱空間'local'? –
local代表定義PartBase的命名空間。所以一切都很好。看到我對@bart答案的評論 - 這很可能是VS 2017的一個bug。它在測試應用程序中工作,但不在「主」應用程序中,如果我刪除了「抽象」它也可以在那裏工作..不正確。 –