【问题标题】:WPF Toolkit:AutoCompleteBox does not move accordingly as the main WindowWPF Toolkit:AutoCompleteBox 不会作为主窗口相应移动
【发布时间】:2013-10-01 08:45:14
【问题描述】:

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

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

【问题讨论】:

  • 如果可以选择,我建议在移动窗口时关闭下拉菜单,我认为这样可以省去一些麻烦。正确移动它以使其与窗口保持一致并不是一件容易的事,这就是为什么我猜测 WPF 工具包作者选择不担心它的原因。
  • @AlexPaven 我会说这实际上是一种很好的实现方式,但是我如何实现这一点,我怎么知道 MainWindow 何时调整大小或向左/向右移动,然后我必须关闭那时的 AutoCompleteBox。

标签: c# wpf autocompletebox


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    相关资源
    最近更新 更多