【问题标题】:Autocompleting TextBox in WPFWPF中的自动完成文本框
【发布时间】:2015-03-30 07:18:24
【问题描述】:

我正在尝试实现一个UserControl,它将充当自动完成TextBox。在TextBox 下方显示ListBox 的可用选项的最佳方式是什么? ListBox 必须不为自己保留空间:它应该位于其他控件之上。是否可以将 UserControl 中包含的内容放在 UserControl's 框架之外?

我已经尝试过Popup,但其中一个问题是弹出窗口不会随父窗口一起移动,因此如果父窗口移动,弹出窗口会留在第一次出现的位置。有一些方法可以在后面的代码中规避,但如果有更简单的解决方案,那显然会更好。

【问题讨论】:

标签: wpf autocomplete textbox


【解决方案1】:

有很多自定义 AutoCompleteBox 包括 WPF Toolkit 但如果你真的需要从头开始实现一个新的。

您可以对画布/矩形元素使用静态 Canvas 方法。

Canvas.SetZIndex(object, (int)99);

或 XAML 样式设置器解决方案

<Setter Property="Panel.ZIndex" Value="99" />

【讨论】:

  • 同意使用 WPF Toolkit 或类似工具中的控件是可行的方法。尽管其他答案也不错,但这是我对任何来寻找相同问题答案的人的建议。
【解决方案2】:

如果您想从头开始,您应该将ListBox 放在AdornerLayer 上。 AdornerLayer 是 Window 顶部的不可见层(如玻璃窗格)。这样您就可以在其上放置任意 UI 元素,而不会弄乱您现有的 GUI 布局。

【讨论】:

    猜你喜欢
    • 2010-10-31
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2010-09-22
    相关资源
    最近更新 更多