如何使用自己的自定义类扩展wpf的实现?特别是,我想在wpf上创建新的C#类,而不是从App.xaml和MainWindow.xaml派生的类。我应该直接在项目上添加它们吗?如果是这样,我可以使用其中的MainWindow元素的引用来调整其功能并添加新任务吗?它们应该来自MainWindow类吗?
将wpf的实现扩展到其他新类的最合理方法是什么?
答案 0 :(得分:0)
这是一个相当广泛的问题,在哪里放置类以及从哪些类继承是完全不同的问题。两者最终都是架构问题,而且您的应用程序的正确架构无法在这里得到解答。这取决于您的应用程序应该做什么以及应该如何完成,所有这些都应该在对类进行任何操作之前进行规划。您可能希望阅读一些关于software engineering和software architecture等主题的智能手册。
答案 1 :(得分:0)
最终你应该得到一本关于WPF的好书,阅读它,并在编辑器中输入所有的例子。简单地尝试深入研究一个API,完全没有示例,也没有关于架构如何工作的概念,不会让你快速到达任何地方。
回答您的具体问题:
它们应该来自MainWindow类吗?
没有。要编写WPF应用程序的GUI,当Visual Studio生成新应用程序,新窗口或新用户控件时,您很少需要使用尚未为您编写的继承。
在代码中使用继承可能是有意义的,但很少在GUI代码本身中使用,当然也不会在窗口或应用程序级别上使用。唯一手动使用继承将用于实现自定义WPF控件(扩展GUI的最常见和最痛苦的选项)。
如何使用自己的自定义类扩展wpf的实现?
目前尚不清楚你要做什么,所以我会尽力覆盖所有案例。
<强> UI 强>
如果你想要一个新的应用程序,通常你根本不会从特定的应用程序类派生,你只需要创建一个新的WPF项目(一个完整的程序)。然后,Visual Studio将为您创建继承自Application
和Window
。
如果你想要一个新窗口,同样的事情也是如此。您只需告诉Visual Studio创建一个新窗口,您的类将自动为您创建,它们将继承自Window
。
如果要将现有控件添加到窗口,请不要从任何内容派生。转到UI设计器,然后将“工具箱”中的“控制”拖放到页面上。或直接编辑该窗口的XAML。
如果要自定义用户单击或使用控件时发生的情况,请为这些控件编写事件处理程序。或者当您对此感到满意时,请阅读数据绑定和MVVM设计模式,因为它可以帮助您编写更清晰的程序。
如果您尝试自定义应用或控件的外观,则通常会按照频率和难度的顺序使用数据模板,样式,用户控件和自定义控件。除自定义控件外,其中没有一个涉及手动编写的继承。当您在WPF中添加用户控件时,Visual Studio将编写一个继承自某事物的类,但您不必担心这一事实。
<强>非UI 强>
如果您正在尝试编写应用程序的内容,则可能应该避免编写任何UI代码。
将UI与主应用程序内容分开是一种很好的做法。这样,如果出现一种全新的技术,您可以剥离用户界面,并将内容投入到新程序中。或者,如果您决定将这些内容放入网页,那也是可能的。
您可以从 UI中的代码隐藏引用这个新代码,或者使用MVVM设计模式(最终应该阅读),但是应该避免混合使用特定于UI的代码和你的非UI代码尽可能多。
这意味着您不会从任何UI类继承以实现应用程序的内容。