2011-08-26 60 views
5

如何在WP7中的TextBox中獲得換行符?我正在開發基於社交的應用程序(如Facebook),如果我設置AcceptReturn = true,它會給我一個視覺(UI)換行符,但是當我將此文本發送到服務器時,我可以看到沒有換行符。請幫我解決這個問題。我試過TextBox中的換行符

void whatsend_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { 
     if (e.Key == Key.Enter) { 
     whatsend.Text +="\r";//or /n,
 
     } 
    } 

但沒有成功。

回答

5

Windows使用\r\n作爲換行符,而不是\r,但這不相關;改爲使用Environment.NewLine

此外,每個文檔:

true,如果按ENTER鍵創建文本在控制的多版本的新線;如果ENTER鍵激活表單的默認按鈕,則爲false。默認值是false。

您是否設置了MultiLinetrue

編輯:Ahhh,WP7 ... here is an article I found它試圖在WP7中創建一個多行文本框。

+0

當我發送文本時,文本框中的換行符顯示爲空格。 – SevenDays

+1

@wsevendays:您的文本框是多行的,即您是否設置了'MultiLine = true'?如果沒有,那麼'AcceptsReturn'對於每個文檔都沒有影響。 –

+0

WP7中的TextBox控件沒有「MultiLine」值。 – SevenDays

0

我對WP7並不熟悉,但Windows一般使用「\r\n」(即兩個字符都是一個接一個)來表示換行符。

如果您將兩者都附加到文本中,它是否可以解決您的問題?

話雖如此,我很驚訝鍵入的換行符正在從文本框中刪除。當你說文本在服務器上不可見時,你是什麼意思?是不是將文本發送到服務器和/或記錄在服務器上,還是服務器上顯示的方法沒有顯示它?

+0

對話框中的文本(讓它成爲服務如Facebook)顯示器沒有斷行,只能用空間。 – SevenDays

2

Environment.NewLine如果與其正常開發相同。

+0

雖然這比「\ r \ n」長得多,並且如果您的代碼中包含很多代碼,則會使代碼變得相當多。有什麼區別,爲什麼你不使用「\ r \ n」? – qJake

+0

誰在乎它是否更詳細?它會修正你的錯誤,因爲你使用了錯誤的換行符。這是一個常數,它可能會發生變化(即使這種可能性不大),就使用它。沒人關心你的代碼有多短,他們關心它是否真正起作用。如果您不喜歡打字,請先將其存儲在一個變量中; 'var nl = Environment.NewLine'。 –

+0

當我發送文本時,文本框中的換行符顯示爲空格和換行符插入文本框的開頭,而不是末尾。 – SevenDays

2

略低於範圍添加到XAML代碼:

AcceptsReturn="True" TextWrapping="Wrap" 

是這樣的:

<TextBox x:Name="InputText" Height="200" VerticalAlignment="Top" Width="456" TextAlignment="Center" TextWrapping="Wrap" AcceptsReturn="True"/>