我正在使用C# 2008在WPF中创建一个日期/时间用户控件。我的第一个用户控件。我也使用了马修·麦克唐纳的书,“C# 2008中的专业WPF”。在那本书中,他强烈建议使用WPF自定义控件库项目模板创建一个用户控件;因此,我遵循了他的建议。我已经完成了代码的编写,这些代码将进入我所认为的代码隐藏文件。现在我准备好编写XAML了。
唯一的问题是,我刚刚发现没有对应的.xaml文件?所以,我不明白为什么在编写用户控件时使用WPF自定义控件库项目更好,或者更可取?
发布于 2010-06-08 04:14:15
用户控件和自定义控件解决了两个截然不同的问题。
UserControls旨在将多个WPF控件组合在一起,以便在其他控件的基础上构建一组功能。这通常用于组合窗口或屏幕的一部分,以便通过允许您将多个功能分组为一个“控件”来组织您的开发。例如,如果您想创建一个用于编辑用户的控件,该控件提供了名字和姓氏等文本框,则可以将单个UserControl拖放到窗口上并绑定到一个User实例来编辑此控件。(在本例中,您将使用标准控件,如TextBox,为更复杂的目的“组合”一个控件。)
然而,CustomControl意味着是一个新的单一控件。这通常是内置控件的替代(不能通过模板重做)。我发现,在WPF中对CustomControls的需求实际上相当少,因为WPF模板选项和附加属性允许您在完全了解标准控件后,对它们做几乎任何事情。
发布于 2011-08-02 04:56:51
我还想补充一点,如果你打算继承你的控件,那么使用一个用户控件将会使事情变得复杂。例如,如果创建一个具有在Xaml中定义的布局的基本用户控件,WPF框架将不允许您继承此控件并使用Xaml来定义子类的布局。在dotnet 3.5中,Xaml控件不能从另一个Xaml控件继承
https://stackoverflow.com/questions/2992671
复制相似问题