c# - 用户控件和自定义控件库的区别

标签 c# wpf

<分区>

我正在使用 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 模板选项和附加属性允许您使用标准控件执行几乎所有操作,一旦您完全了解它们。

关于c# - 用户控件和自定义控件库的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2992671/

相关文章:

c# - 将派生接口(interface)添加到通用接口(interface)

c# - 在 C# 中混合可选参数和 params 关键字

c# - Database.SqlQuery 和 EF 6.1 之间的性能有什么区别吗?

wpf - 如何在 CWnd 中调整 WPF 控件的大小?

python - IronPython与WPF编译exe pyc错误

wpf - 如何使成功登录关闭WPF MVVM应用程序中的LoginView?

wpf - 通过 ViewModel 绑定(bind)到 DependencyProperty 无效

c# - 如何运行一组任务,将它们全部暂停,更新数据表,然后允许任务继续使用更新后的数据表?

c# - 如何使 TaskCompletionSource.Task 使用特定的 TaskScheduler 完成

wpf - 需要使用 LINQ 将对象绑定(bind)到列表框的 WPF 简单示例