UWP 继承自 class 继承自 UserControl
UWP inherit from a class inherited from UserControl
我正在将 Silverlight 应用程序移植到 UWP Windows 10 应用程序。
它的很大一部分有控件,继承自 class,继承自 UserControl。
base:
public abstract class PartBase : UserControl, IPart, IDisposable
concrete:
public sealed partial class MyPart : PartBase
its XAML:
<local:PartBase
我收到编译错误:命名空间中不存在名称 "PartBase"..
UWP 允许继承吗?
您的代码应该可以工作。我已经创建了您的抽象基础 class 和基于该 class 的新控件。
<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
指向正确的命名空间。在您重新构建应用程序之前,设计器也会报错。
一切都在这里构建并且应用程序运行,所以如果您在仔细检查所有命名空间声明后仍然有错误,您必须在线重现,以便我们检查还有什么问题。
我正在将 Silverlight 应用程序移植到 UWP Windows 10 应用程序。
它的很大一部分有控件,继承自 class,继承自 UserControl。
base:
public abstract class PartBase : UserControl, IPart, IDisposable
concrete:
public sealed partial class MyPart : PartBase
its XAML:
<local:PartBase
我收到编译错误:命名空间中不存在名称 "PartBase"..
UWP 允许继承吗?
您的代码应该可以工作。我已经创建了您的抽象基础 class 和基于该 class 的新控件。
<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
指向正确的命名空间。在您重新构建应用程序之前,设计器也会报错。
一切都在这里构建并且应用程序运行,所以如果您在仔细检查所有命名空间声明后仍然有错误,您必须在线重现,以便我们检查还有什么问题。