2014-06-27 61 views
2

我想建立了Windows Phone 8.1應用程序,有一些東西是真正困擾我: [看這個] http://i.imgur.com/XO7oOmT.png在WP8.1自動添加一個換行符到文本框XAML

正如你所看到的當文本到達結尾時,TextBox不會創建並轉到新行。我該怎麼辦?我試着用谷歌搜索它,但無法真正找到它(我相信我使用了錯誤的關鍵字,但我都是新手)。

不管怎麼說,這裏是我使用的XAML代碼(有一些事情我已經在谷歌找到,但沒有工作)

查看「contentTextBox」:

 <Grid x:Name="LayoutRoot" Background="WhiteSmoke"> 

     <Grid.ChildrenTransitions> 
      <TransitionCollection> 
       <EntranceThemeTransition/> 
      </TransitionCollection> 
     </Grid.ChildrenTransitions> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <!--TODO: Content should be placed within the following grid--> 
     <Grid Grid.Row="0" x:Name="TitleRoot" Margin="0,0,0,0"> 
      <TextBox x:Name="titleTextBox" Text="Title"/> 
     </Grid> 
     <Grid Grid.Row="1" x:Name="ContentRoot" Margin="0,0,0,0"> 
      <StackPanel Height="Auto"> 
       <TextBox x:Name="contentTextBox" Text="" HorizontalAlignment="Stretch" VerticalAlignment="Top" AcceptsReturn="True" Width="Auto"/> 
      </StackPanel> 
     </Grid> 
    </Grid> 

回答

2

打開TextWrapping幫助!

<TextBox x:Name="contentTextBox" 
     TextWrapping="Wrap" 
     Text="" 
     HorizontalAlignment="Stretch" 
     VerticalAlignment="Top" 
     AcceptsReturn="True" 
     Width="Auto" /> 

這意味着 - 當您不在水平空間時,換行到另一行。

+0

哦,我簡直不敢相信。但我仍然有一個問題:我是一個外國人(我已經翻譯過「文字包裝」,但沒有多大幫助),我仍然不確定「TextWrap」的真正含義。在一些文本中,我嘗試使用不同設置的TextWrap(NoWrap,Wrap等),我根本沒有看到任何區別。 – 0x7067

1

您需要打開TextWrapping,並且您還需要將其從StackPanel中刪除或給它一個固定的大小。

StackPanel將允許文本框水平無限增長,並且由於您有Width="Auto"HorizontalAlignment="Stretch",因此TextBox無法知道它何時應該停止伸展,並且會隨着文本一起增長。

刪除StackPanel,並保留HorizontalAlignment="Stretch"(寬度可以被刪除,因爲它是默認值),並且文本框將佔用屏幕寬度的100%,並且不會在鍵入時調整大小。

+0

按照您的說法並設置了「VerticalAllignment =」Stretch「,現在完全按照我的意願設置,謝謝 – 0x7067

+0

不客氣,請將答覆標記爲答案以關閉主題。 –

0

試圖通過將

<TextBox ScrollViewer.HorizontalScrollMode="Disabled" TextWrapping="Wrap"/> 

<Grid Grid.Row="1" x:Name="ContentRoot" Margin="0,0,0,0"> 
     <StackPanel Height="Auto"> 
      <TextBox x:Name="contentTextBox" Text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt." HorizontalAlignment="Stretch" ScrollViewer.HorizontalScrollMode="Disabled" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Width="Auto"/> 
     </StackPanel> 
    </Grid> 

ScrollViewer.Horizo​​ntalScrollMode = 「禁用」:這意味着,ScrollViewer中不給 「自動」 寬以文本框即使文本框超出其邊界/可見寬度

TextWrapping =「Wrap」:如果文字不適合其寬度, mes到下一行。

enter image description here

相關問題