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/

我的问题,简直就是,你算什么类型的控制我应该创建?

  1. 自定义控件
  2. 用户控制
  3. 从CoboBox类继承 - 只是简单地创建一个从组合框派生新类,并添加上面的方法呢?

你最好的选择是#3,这是你所提供的链接所做的。对于#1,你必须复制所有的ComboBox控制代码,我不确定你可以用#2来完成。

+0

太好了。谢谢你。我很高兴与#3一起去。虽然,我对#1有点困惑?你说控制代码需要重复。这是否意味着我需要为ComboBox中暴露的每个属性创建重写的'DependencyProperty'属性,或者您的意思是我需要以某种方式从ComboBox获取源代码并在我的新自定义控件中实现? – fin 2011-04-27 11:36:38

+0

@Finbar - 是的,您需要复制ComboBox类中的所有代码,然后调整它以解决您描述的问题。至少,这就是我假设你的意思是#1(即一个MyComboBox控件,其工作方式与ComboBox完全相同,但可以解决您的问题)。 – CodeNaked 2011-04-27 11:44:21

+0

是的。那就是我的意思。只是为了确认 - 如果你不介意的话。你的意思是“重复显式覆盖每个属性”或“通过获取源代码复制/粘贴_reimplementing_”来复制? – fin 2011-04-27 12:11:59