C# UWP继承自从UserControl继承的类
我正在将Silverlight应用程序移植到UWP Windows 10应用程序 它的很大一部分具有从类继承的控件,该类继承自UserControlC# UWP继承自从UserControl继承的类,c#,uwp,windows-10-universal,visual-studio-2017,uwp-xaml,C#,Uwp,Windows 10 Universal,Visual Studio 2017,Uwp Xaml,我正在将Silverlight应用程序移植到UWP Windows 10应用程序 它的很大一部分具有从类继承的控件,该类继承自UserControl base: public abstract class PartBase : UserControl, IPart, IDisposable concrete: public sealed partial class MyPart : PartBase its XAML: <local:PartBase base: 公共抽象类Par
base:
public abstract class PartBase : UserControl, IPart, IDisposable
concrete:
public sealed partial class MyPart : PartBase
its XAML:
<local:PartBase
base:
公共抽象类PartBase:UserControl、IPart、IDisposable
混凝土:
公共密封部分类MyPart:PartBase
其XAML:
你的代码应该可以工作。我已经创建了抽象基类和基于该类的新控件
<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:controls
指向正确的命名空间。在您重新构建应用程序之前,设计器还会给出一个错误
所有内容都在此处生成,并且应用程序运行,因此,如果在仔细检查所有名称空间声明后仍有错误,则必须将repo置于联机状态,以便我们可以检查其他错误。您的代码应该可以工作。我已经创建了抽象基类和基于该类的新控件
<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:controls
指向正确的命名空间。在您重新构建应用程序之前,设计器还会给出一个错误
所有内容都在此处生成,并且应用程序运行,因此,如果在仔细检查所有名称空间声明后仍有错误,则必须联机复制,以便我们可以检查其他错误。继承不在主题范围内,是吗?美好的您多大了?如何在MyPart的XAML中定义命名空间local
?local表示定义PartBase的命名空间。所以一切都很好。请参阅我对@bart答案的评论-这更可能是一个VS2017错误。它可以在测试应用程序中工作,但不能在“主”应用程序中工作,如果我删除“抽象”,它也可以在那里工作。。不正确。我知道,我只是想知道您是否没有在声明中使用clr命名空间
,而不是使用
。不。它的“使用”继承是离题的,那么?美好的您多大了?如何在MyPart的XAML中定义命名空间local
?local表示定义PartBase的命名空间。所以一切都很好。请参阅我对@bart答案的评论-这更可能是一个VS2017错误。它可以在测试应用程序中工作,但不能在“主”应用程序中工作,如果我删除“抽象”,它也可以在那里工作。。不正确。我知道,我只是想知道您是否没有在声明中使用clr命名空间
,而不是使用
。不。它的“使用”是的,它看起来像VS2017 bug。我可以在测试项目中做我想做的事情,但在我的应用程序中做不到。。但是,如果我从基类定义中删除“abstract”,它就可以工作了。好消息是,您可以继续前进了。别忘了发布一个快速的bug报告,这样微软就可以进行调查。不幸的是,我不知道为什么它在一个示例应用程序中有效,而在真正的应用程序中无效。。Ms希望复制。是的,它看起来像VS2017 bug。我可以在测试项目中做我想做的事情,但在我的应用程序中做不到。。但是,如果我从基类定义中删除“abstract”,它就可以工作了。好消息是,您可以继续前进了。别忘了发布一个快速的bug报告,这样微软就可以进行调查。不幸的是,我不知道为什么它在一个示例应用程序中有效,而在真正的应用程序中无效。。而微软希望复制。