Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP继承自从UserControl继承的类_C#_Uwp_Windows 10 Universal_Visual Studio 2017_Uwp Xaml - Fatal编程技术网

C# UWP继承自从UserControl继承的类

C# 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

我正在将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:
公共抽象类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报告,这样微软就可以进行调查。不幸的是,我不知道为什么它在一个示例应用程序中有效,而在真正的应用程序中无效。。而微软希望复制。