2013-04-02 106 views
1

所以我發佈了這個問題,但建議的答案似乎並沒有工作。所以再次重新發布它,XAML的簡單版本。我們通常期望TextBox在窗口大小調整時調整大小。我想要「其他方式」的行爲。佔據整個窗口區域的文本框。 TextBox隨着尺寸的增大/縮小而變化。請以這種方式提出建議。WPF,窗口調整大小作爲文本框大小

<Window> 
    <Grid HorizontalAlignment="Stretch"> 
     <TextBox Width="Auto">    
     </TextBox> 
    </Grid> 
</Window> 

回答

2
<Window x:Class="MiscSamples.SizeToContent" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="SizeToContent" SizeToContent="WidthAndHeight" ResizeMode="NoResize"> 
    <Grid HorizontalAlignment="Stretch"> 
     <TextBox Width="Auto" AcceptsReturn="True"> 
     </TextBox> 
    </Grid> 
</Window> 

請注意,您必須包括ResizeMode="NoResize",因爲如果用戶手動調整窗口的大小,行爲都將丟失。

+0

或者你當然可以使用內容功能的大小,可以使用任何一種方式,但你可能會發現一個更適合你(例如,綁定版本,特別是如果你想在某一點上某種形式的值轉換器) – Clint

+0

SizeToContent =「WidthAndHeight」完成這項工作。沒有其他必要的。感謝HighCore :) http://stackoverflow.com/questions/15774854/wpf-window-resizing-as-textbox-resizes/15774953?noredirect=1#15774953 – armanali

+0

@armanali看我的編輯。 –

-1

你可以給文本框中的名稱,然後在窗口寬度綁定到文本框的大小,例如:

<Window Width="{Binding ElementName=txtbox, Path=ActualWidth}"> 
    <Grid HorizontalAlignment="Stretch"> 
     <TextBox x:Name="txtbox" Width="Auto">    
     </TextBox> 
    </Grid> 
</Window> 

我不包括上漿文本框的任何代碼(我假設您將以編程方式執行此操作)但使用此XAML時,窗口應根據文本框寬度進行調整。

+0

-1。我測試了你的XAML,它不起作用。 TextBox和Window都不能動態調整大小。 –