2

我正在为我的客户开发一个 WPF 应用程序,我需要使用工具包:AutoCompleteBox 我已经尽可能地实现了它,但现在我面临一个问题。每当我尝试在 AutoCompleteBox 中输入内容时说“a”,请参见附图中的内容,它会弹出列表,但此时如果我尝试将窗口向左或向右或顶部移动,列表将完全保持在它所在的相同位置弹出。它不随窗户移动。知道为什么会这样吗?

我怎样才能找到一个平滑的解决方案,比如作为主窗口相应地移动。请帮忙。!

自动完成框的错误

4

1 回答 1

1

一般来说,弹出窗口是自己的窗口,不属于您的主窗口。AutoCompleteBox 的作者决定不实现位置更改的默认行为。

例如,您可以注册Application.Current.MainWindow.SizeChangedLocationChanged。比设置IsDropDownOpen为假。但要小心,如果您没有正确取消注册,这可能会导致内存泄漏(例如,当您将屏幕更改为其他内容时)。

如果 IsKeyboardFocusWithin 为 false,您还可以注册IsKeyBoardFocusWithinChanged控件以关闭 DropDown。

于 2013-10-01T12:25:26.953 回答