我想創建自定義控件,它看起來像標準的WPF ComboBox
,但不是彈出窗口中會有ItemsPresenter
,而會有另一個自定義控件。所以,我創建了從0派生新類,增加了一個IsDropDownOpen
財產,創造一種風格,其實是默認ComboBox
風格複印件(主要思想是,Popup.IsOpen
和ToggleButton.IsPressed
屬性綁定到該控件的IsDropDownOpen
屬性)。WPF類似combobox的自定義控件
問題是,當我單擊控件外部時,Popup
未關閉。
我看了看Reflector中的ComboBox
類,發現ComboBox
在丟失鼠標捕獲時使用了一些邏輯來更新IsDropDownOpen
屬性。但是該代碼使用了一些內部類。有沒有其他方法可以確定用戶是否在控制之外單擊並關閉了Popup
?
UPD:我沒有找到附加文件發佈的方式,所以我上傳示例項目here
有看起來像組合框自定義控制,但它有一個彈出一個TreeView。當您打開彈出窗口並在控件外部單擊時,它會自動關閉,但如果您打開彈出窗口,請展開'Item2',然後在彈出窗口外部單擊關閉。問題是如何解決這個問題?
你可以張貼一些代碼? – RQDQ 2011-02-16 15:02:39
@RQDQ:你到底需要什麼?控制模板?正如我所說,它與默認的組合框模板相同,但不是ItemsPresenter還有另一個控件。 – adogg 2011-02-17 07:21:13
這個想法是我們想看看你已經有了什麼,所以我們不必重新發明輪子來幫助你。 – RQDQ 2011-02-17 14:09:54