这是三个不同的东西,你可以添加到一个项目,我不是很肯定,如果我理解上的差异。 他们都似乎例如在部件工具箱中显示了一个工作时Form
。 什么是他们每个人的一些常见的使用场景? 有什么不同?
Answer 1:
用户控制之间的主要区别,自定义控件和组件的是,他们从不同的层面在继承树继承:
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
因此,简而言之,你得到不同金额的预接线功能不同的选项。
你什么时候会使用不同的选项? (这些想法和观点,而不是真理)
- 创建一个组成部分 ,如果你想在不UI提供的功能 (如定时器组件,数据源,...)
- 创建一个自定义的控制 ,如果你想,你必须在它的外观完全控制组件,你不希望的不必要的功能的任何行李。 典型情况下,将与有限的功能简单的控制(例如按钮)
- 创建,如果你要对现有的控件 (如两个列表的按钮,你可以在列表之间移动项目) 组合成可重用的构建块的用户控件 。
Answer 2:
这是一个CustomControl和用户控件之间的一些区别:
自定义控件
松散耦合控制WRT代码和UI
从Control派生
定义在ResourceDictionary中UI
UI是更换皮肤
具有动态布局
UI可以在不同的项目进行更改
拥有完整的工具箱支持
定义一个单一的控制
更灵活
==============
用户控制
紧密耦合的控制WRT代码和UI
从用户控件派生
定义UI正常XAML
子控件的skinable
具有静态布局
UI是固定的,不能在不同的项目不同的外观
不能被添加到工具箱
定义一组控制
不是很灵活,就像一个自定义控件
Answer 3:
添加到什么弗雷德里克说,一般组件和定制控件会当你打算在项目间重复使用它们来使用。 当你只在一个项目中使用它使用的用户控件。
Answer 4:
我相信最后一条语句是不是在我的意见是正确的。 我创造了许多不同的原因用户控件。
主要的原因是这样,如果每说我的设计组合在一起的多个控件的接口。
我首先创建一个类库,然后我添加用户控件到它。 现在,如果我需要改变用户如何控制工程,我可以很容易背后的逻辑的任何部分。 另外这个类库可以多次使用。
我也同样优雅的图书馆内可以具有可共享,并用于任何我的用户控件的多个类。
这是我使用用户控件的主要原因。 如果你改变你的用户控件或类库。 一旦你建立了工作。 DLL将动态了最新的bin文件夹。
所以,如果我在另一个项目中引用此这些变化也将出现在新的项目。
此外,它不使用相同的油漆程序为您加载窗体上的形式和任何东西。
因此,用户控件为我们提供了非常模块化的能力,我可以有一个共享的类库的基本知识类的多个用户控件。所以用户控制的目的仅仅是不是一个项目。 它在这方面没有限制。 杰夫
Answer 5:
他们-用户控制之间的主要区别是用扩展的.ascx的页面文件可以仅单个应用程序或项目但是内使用定制控件是可以在多个应用中使用组件(DLL文件)。