WPF自定义组合框控件
问题描述:
我在我的WPF应用程序中使用组合框。 ComboBox有一个在.NET Framework中引入的滚动问题。我在网上查找解决方案,发现我需要创建一个覆盖OnApplyTemplate()和GetVisualChild((DependencyObject reference))的新ComboBox,并引入了一些新的逻辑来解决这些方法中的问题。WPF自定义组合框控件
请参见:http://social.msdn.microsoft.com/forums/en-US/wpf/thread/0a571c75-4976-4c94-a59e-b085679a5d08/
我的问题,简直就是,你算什么类型的控制我应该创建?
- 自定义控件
- 用户控制
- 从CoboBox类继承 - 只是简单地创建一个从组合框派生新类,并添加上面的方法呢?
答
你最好的选择是#3,这是你所提供的链接所做的。对于#1,你必须复制所有的ComboBox控制代码,我不确定你可以用#2来完成。
太好了。谢谢你。我很高兴与#3一起去。虽然,我对#1有点困惑?你说控制代码需要重复。这是否意味着我需要为ComboBox中暴露的每个属性创建重写的'DependencyProperty'属性,或者您的意思是我需要以某种方式从ComboBox获取源代码并在我的新自定义控件中实现? – fin 2011-04-27 11:36:38
@Finbar - 是的,您需要复制ComboBox类中的所有代码,然后调整它以解决您描述的问题。至少,这就是我假设你的意思是#1(即一个MyComboBox控件,其工作方式与ComboBox完全相同,但可以解决您的问题)。 – CodeNaked 2011-04-27 11:44:21
是的。那就是我的意思。只是为了确认 - 如果你不介意的话。你的意思是“重复显式覆盖每个属性”或“通过获取源代码复制/粘贴_reimplementing_”来复制? – fin 2011-04-27 12:11:59