我在Word插件中有一個組合框。組合框的內容通常足以覆蓋Word的縮放滑塊控件。但是,直接在變焦控制(從視圖中隱藏)選擇一個項目會導致變焦控制變焦,關閉組合框並更改變焦設置!在組合框中的選擇是不變的。在插件中保持焦點在WPF組合框中
如何讓組合框保持焦點並將所選值更改爲選中的項目(通過縮放欄)?謝謝...
我在Word插件中有一個組合框。組合框的內容通常足以覆蓋Word的縮放滑塊控件。但是,直接在變焦控制(從視圖中隱藏)選擇一個項目會導致變焦控制變焦,關閉組合框並更改變焦設置!在組合框中的選擇是不變的。在插件中保持焦點在WPF組合框中
如何讓組合框保持焦點並將所選值更改爲選中的項目(通過縮放欄)?謝謝...
我已經遇到了與WPF的這個相同的問題,它看起來像它與Word處理來自子窗口的事件的方式有關。每當下拉列表(或可能是任何其他「彈出」控件,如上下文菜單)被繪製在Word的某個窗口中時,它會變得有點貪婪,並假定您單擊了底層窗口。
我不知道有關Windows中的消息傳遞/事件如何工作,我還沒有時間找出解決問題的最佳方法,但是基於創建無邊界窗口的帖子,我嘗試過修改窗口樣式的WinForms用戶控件如下(從http://www.pinvoke.net/default.aspx/Constants/Window%20styles.html windows風格的常量):
protected override CreateParams CreateParams
{
get
{
CreateParams p = base.CreateParams;
if (!DesignMode)
{
unchecked
{
p.Style = (int)(WindowStyles.WS_VISIBLE |
WindowStyles.WS_POPUP |
WindowStyles.WS_CLIPSIBLINGS |
WindowStyles.WS_CLIPCHILDREN);
}
}
return p;
}
}
奇怪的是(或者也許不那麼好奇的人們比較熟悉的Windows消息),下拉DOES響應鍵盤事件(例如點擊彈出列表,然後使用鍵盤選擇一個項目)。
功能上似乎沒有上述代碼的問題......但我不確定是什麼後果說用戶控件是彈出而不是孩子。
另一篇與此相關的帖子是WPF ComboBox doesn't stay open when used in a Task Pane。