如何在WPF中创建Abstract Class of System控件的实例?

时间:2013-08-18 08:04:59

标签: 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'

如何解决这个问题?任何人都可以回答我的问题。

2 个答案:

答案 0 :(得分:5)

来自MSDN -

  

抽象类无法实例化,而且经常也是如此   部分实施,或根本没有实施。

如果您需要Panel,请创建一个派生自Panel的类的对象。最受欢迎的是

  • 网格
  • DockPanel中
  • 的StackPanel
  • 帆布

可以找到从{Panels}派生的类的完整列表here

这将符合您的目的 -

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

但我认为您需要访问DockPanel的Dock属性(以及特定于DockPanel的属性),因此您应该创建DockPanel对象 -

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

答案 1 :(得分:1)

您无法创建抽象类的实例,请参阅abstract keyword

您可以从抽象类派生,然后您可以将派生的对象用作抽象类型,请参阅polymorphisminheritance