C# WPF Toolkit:AutoCompleteBox不会相应地作为主窗口移动

C# WPF Toolkit:AutoCompleteBox不会相应地作为主窗口移动,c#,wpf,autocompletebox,C#,Wpf,Autocompletebox,我正在为我的客户开发一个WPF应用程序,我需要使用工具包:AutoCompleteBox我已经尽可能地实现了它,但现在我面临一个问题。每当我尝试在自动完成框中键入内容时,在所附图片中说“a”,它就会弹出列表,但此时如果我尝试将窗口向左或向右移动或移动到顶部,列表将保持在它弹出的相同位置。它没有随着窗户移动。知道为什么会这样吗 我怎样才能获得一个平滑的解决方案,如作为主窗口相应地移动。请帮忙 通常,弹出窗口是自己的窗口,不属于主窗口。AutoCompleteBox的作者决定不实现位置更改的默认行为

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

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


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

例如,您可以注册
Application.Current.MainWindow.SizeChanged
LocationChanged
。然后将
IsDropDownOpen
设置为false。但是要小心,如果您没有正确注销(例如,当您将屏幕更改为其他屏幕时),这可能会导致内存泄漏


如果IsKeyboardFocusWithin为false,您也可以注册控件的
IsKeyboardFocusWithin更改
,以关闭下拉列表。

如果这是一个选项,我建议在移动窗口时关闭下拉列表,我想这会省去一些麻烦。正确地移动它,使其与窗口保持一致,并不是一件小事,这就是为什么我猜WPF工具包的作者选择不担心它的原因。@AlexPaven我想说,这实际上是一种很好的实现方式,但我如何做到这一点,我如何知道主窗口何时调整大小或向左/向右移动,然后我必须在那时关闭自动完成框。