C# 向wpf添加新类

C# 向wpf添加新类,c#,wpf,class,C#,Wpf,Class,如何使用自己的自定义类扩展wpf的实现?特别是,我想在wpf上创建新的C类,而不是从App.xaml和MainWindow.xaml派生的类。我应该直接将它们添加到项目中吗?如果是这样的话,我可以在它们内部使用MainWindow元素的引用来调整它们的功能并添加新任务吗?它们应该从MainWindow类派生吗 将wpf的实现扩展到其他新类通常最合理的方法是什么 这是一个相当广泛的问题,在哪里放置类以及从哪些类继承是完全不同的问题。但这两个问题最终都是架构问题,这里无法回答什么是适合您的应用程序的

如何使用自己的自定义类扩展wpf的实现?特别是,我想在wpf上创建新的C类,而不是从App.xaml和MainWindow.xaml派生的类。我应该直接将它们添加到项目中吗?如果是这样的话,我可以在它们内部使用MainWindow元素的引用来调整它们的功能并添加新任务吗?它们应该从MainWindow类派生吗


将wpf的实现扩展到其他新类通常最合理的方法是什么

这是一个相当广泛的问题,在哪里放置类以及从哪些类继承是完全不同的问题。但这两个问题最终都是架构问题,这里无法回答什么是适合您的应用程序的架构。这取决于应用程序应该做什么以及应该如何做,所有这些都应该在对类做任何事情之前计划好。您可能想阅读一些关于和等主题的智能书籍。

最终,您应该获得一本关于WPF的好书,阅读它,并将所有示例键入编辑器中。简单地尝试在完全没有示例和架构如何工作的概念的情况下深入研究一个API是不会很快到达任何地方的

但要回答您的具体问题,请执行以下操作:

它们应该从MainWindow类派生吗

不需要。要为WPF应用程序编写GUI,当Visual Studio生成新应用程序、新窗口或新用户控件时,很少需要使用尚未为您编写的继承

在代码的某个地方使用继承可能是有意义的,但很少在GUI代码本身中使用继承,当然也不在窗口或应用程序级别上使用继承。继承的唯一手动使用将是实现自定义WPF控件—扩展GUI的最不频繁和最痛苦的选项

如何使用自己的自定义类扩展wpf的实现

不清楚你想做什么,所以我会尽力涵盖所有的案例

用户界面

如果您想要一个新的应用程序,通常您根本不会从一个特定的应用程序类派生,您只需要创建一个新的WPF项目和一个完整的程序。然后VisualStudio将为您创建从应用程序和窗口继承的新类

如果你想要一个新窗口,同样的事情也是如此。您只要告诉VisualStudio创建一个新窗口,您的类就会自动为您创建,并且它们会从窗口继承

如果要将现有控件添加到窗口中,请不要派生任何控件。转到UI设计器,将控件从工具箱拖放到页面上。或者直接编辑该窗口的XAML

如果要自定义用户单击控件或使用控件时发生的情况,请为这些控件编写事件处理程序。或者当您对此感到满意时,请阅读数据绑定和MVVM设计模式,因为它将帮助您编写更干净的程序

如果您试图自定义应用程序或控件的外观,通常会按照频率和难度的顺序使用数据模板、样式、用户控件和自定义控件。除了自定义控件外,这些控件都不涉及手动编写的继承。当您在WPF中添加用户控件时,VisualStudio将编写一个继承自某个对象的类,但您不必担心这一事实

非用户界面

如果您试图编写应用程序的核心,那么可能应该避免编写任何UI代码

将UI与主要应用程序的核心分离是一个很好的实践。这样一来,如果出现了一项全新的技术,你就可以剥离UI,将勇气投入到一个新的程序中。或者,如果你决定把这些胆量放到网页上,这也是可能的

您可以从UI中的代码中引用这些新代码,也可以使用MVVM设计模式,您最终应该阅读这些模式,但是您应该尽可能避免将特定于UI的代码与非UI代码混用


这意味着您不会为了实现应用程序的核心而继承任何UI类。

查看MVVM设计模式:您到底想实现什么?通常,您根本不会从特定的应用程序或页面类派生,您只需创建一个新的应用程序—新的整个程序或新页面。如果您试图自定义应用程序或控件的外观,您通常会按照频率和难度的顺序使用数据模板、样式、用户控件和自定义控件。更新和更详细的问题