2011-04-27 193 views
1

我在我的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類繼承 - 只是簡單地創建一個從組合框派生新類,並添加上面的方法呢?

回答

0

你最好的選擇是#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