我需要一個很好的解決方案,使網格中的文本框擴展到其可用空間,但不會根據文本在其中發生多長時間來擴展。WPF:按可用寬度展開TextBox,但不按其內容展開?
我發現的大多數解決方案都是製作一個虛擬邊框並綁定到它的ActualWidth,但它對我來說是一個哈希解決方案。邊界解決方案需要在邊界上設置一個小邊距,這根本不好。將其設置爲低會導致UI行爲非常奇怪。不喜歡這個解決方案。必須有更好的?我只希望文本框不要隨其內容擴展。它不應該那麼辛苦。請讓我知道如何做到這一點。
編輯:
我注意到一個奇怪的是,下面的代碼,使邊界很多大那麼它必須是:
<Grid>
<Border Name="dummy1" Background="Red" />
<TextBox Text="23242342343555554234234444444444423423423432344444444" Width="{Binding ActualWidth, ElementName=dummy1}" />
</Grid>
更換邊框和文本框爲了使邊界適合文本框很好,但我需要的是相反的。如前所述,設置一個邊距至少0.5的邊界使得它可以工作,但結果會帶來一些不穩定的UI。
如果你只是在網格中有一個文本框,它應該默認伸展到它的父節點。你確定你沒有任何修改你的HorizontalAlignment屬性的東西嗎?你在談論Grid控件還是其他一些控件(如DataGrid或GridView),你稱之爲Grid? – 2010-12-06 10:24:44