我正在使用 C# 2008 在 WPF 中创建日期/时间用户控件。我的第一个用户控件。我还在使用 Matthew MacDonald 的书“Pro WPF in C# 2008”。在那本书中,他强烈建议使用 WPF 自定义控件库项目模板创建用户控件;所以我听从了他的建议。我已经完成了将进入我认为的代码隐藏文件的代码的编写。现在我已准备好编写 XAML。
唯一的问题是,我刚刚发现没有对应的.xaml文件?所以,我不明白为什么在编写用户控件时使用 WPF 自定义控件库项目更好或更受欢迎?
用户控件和自定义控件解决了两个截然不同的问题。
UserControls 旨在将多个 WPF 控件组合在一起,以便从其他控件构建一组功能。这通常用于组成窗口或屏幕的一部分,以便通过允许您将多个功能 block 组合到一个“控件”中来组织您的开发。例如,如果您想制作一个用于编辑用户的控件,该用户提供了名字和姓氏、年龄等文本框,则可以将单个 UserControl 拖放到 Window 上并绑定(bind)到 User 实例以对其进行编辑。 (在这种情况下,您正在使用标准控件(例如 TextBox)来“组合”控件以达到更复杂的目的。)
但是,CustomControl 是一个新的单一控件。这通常是内置控件的替代品(无法通过模板重做)。我发现在 WPF 中实际上很少需要 CustomControls,因为 WPF 模板选项和附加属性允许您使用标准控件执行几乎所有操作,一旦您完全了解它们。