在WPF中自动完成TextBox

时间:2014-05-21 05:56:30

标签: wpf autocomplete textbox

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

或XAML样式的setter解决方案

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

答案 1 :(得分:1)

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