2014-05-21 171 views
0

我正在嘗試實現UserControl,它可以充當自動完成的TextBox。在TextBox以下顯示ListBox可用選項的最佳方式是什麼? ListBox不必爲自身保留空間:它應該放置在其他控件上。是否可以在UserControl's框架之外放置UserControl以內的東西?在WPF中自動完成文本框

我試過Popup,但這樣做的一個問題是彈出窗口不隨父窗口移動,所以如果父窗口移動,彈出窗口留在第一次出現的位置。有很多方法可以避開後面的代碼,但如果有更簡單的解決方案,那顯然會更好。

+1

[WPF:AutoComplete TextBox,... again]可能的重複(http://stackoverflow.com/questions/2338690/wpf-autocomplete-textbox-again) – Aron

回答

1

有很多自定義AutoCompleteBox,包括WPF Toolkit 但如果你真的需要從頭開始實施一個新的。

對於畫布/矩形元素,可以使用靜態Canvas方法。

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

或XAML風格二傳手解決方案

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

同意使用來自WPF Toolkit或類似的控件是要走的路。雖然其他答案也很好,但這是我的建議,任何人都可以找到同樣問題的答案。 –

1

如果你想從頭開始做,你應該把ListBoxAdornerLayerAdornerLayer是窗口頂部的不可見層(如玻璃窗格)。通過這種方式,您可以在其上放置各種UI元素,而不會混淆現有的GUI佈局。