Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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# 如何在WPF中创建系统控件抽象类的实例?_C#_.net_Wpf - Fatal编程技术网

C# 如何在WPF中创建系统控件抽象类的实例?

C# 如何在WPF中创建系统控件抽象类的实例?,c#,.net,wpf,C#,.net,Wpf,我在WPF中编写了以下代码: System.Windows.Controls.Panel Panel1 = null; Panel1 = new System.Windows.Controls.Panel(); 但它的意思是: Error1 Cannot create an instance of the abstract class or interface 'System.Windows.Controls.Panel' 如何解决这个问题?有人能回答我的问题吗。您不能创建抽象类

我在WPF中编写了以下代码:

   System.Windows.Controls.Panel Panel1 = null;
   Panel1 = new System.Windows.Controls.Panel();
但它的意思是:

Error1 Cannot create an instance of the abstract class or interface 'System.Windows.Controls.Panel'

如何解决这个问题?有人能回答我的问题吗。

您不能创建抽象类的实例,请参见

您可以从抽象类派生,然后可以使用派生对象作为抽象类型,请参见和-

抽象类不能被实例化,并且经常 部分实施,或根本未实施

如果需要
面板
,请创建派生自的类的对象。最受欢迎的是

  • 网格
  • DockPanel
  • 堆垛板
  • 帆布
可以找到从面板派生的类的完整列表

这将符合你的目的-

System.Windows.Controls.Panel Panel1 = new System.Windows.Controls.DockPanel();
但我认为您需要访问DockPanel的
Dock
属性(以及特定于DockPanel的属性),因此您应该创建DockPanel对象-

System.Windows.Controls.DockPanel Panel1 = new System.Windows.Controls.DockPanel();

错误消息是正确的!您无法创建任何抽象类或接口的实例。你到底想做什么?@MitchWheat我想创建一个面板/@ZoyaSheikh也许你想要
StackPanel
Canvas
?它们都是非抽象的
Panel
s.@MitchWheat Joachim想要DockPanel。你可以创建很多。你可以参考my Main Window.xaml中的DockPanel。我定义了MVVM框架来编辑、删除和更新网格中的数据。每当单击名为“new”的按钮时,我想在ViewModel类中创建新的PanelB。PanelA将隐藏,PanelB应占据Panle A的位置?创建一个
ContentControl
和两个
DataTemplates
。在按钮上,单击更改
数据模板
。然而,这与创建一个抽象类的实例有什么关系呢?我认为没有必要从
面板
派生一个新类,因为已经有这么多了。