2011-08-26 21 views
5

Làm thế nào tôi có thể nhận được một linebreak trong TextBox trong WP7? Tôi đang phát triển ứng dụng dựa trên xã hội (như facebook) và nếu tôi đặt AcceptReturn = true, nó mang lại cho tôi một hình ảnh (ui) linebreak, nhưng khi tôi gửi văn bản này đến máy chủ, tôi có thể thấy rằng không có linebreak. Xin hãy giúp tôi với vấn đề này. Tôi đã thửLinebreak trong TextBox

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

nhưng không thành công.

Trả lời

5

Windows sử dụng \r\n cho ngắt dòng, không \r, nhưng điều đó không liên quan; sử dụng Environment.NewLine để thay thế.

Ngoài ra, theo các tài liệu:

true nếu phím ENTER tạo ra một dòng sản phẩm mới của văn bản trong một phiên bản multiline của sự kiểm soát; false nếu phím ENTER kích hoạt nút mặc định cho biểu mẫu. Mặc định này sai.

Bạn đã đặt MultiLine to true?

EDIT: Ahhh, WP7 ... here is an article I found cố gắng tạo hộp văn bản nhiều dòng trong WP7.

+0

Khi tôi gửi văn bản, dấu ngắt dòng trong hộp văn bản hiển thị dưới dạng không gian. – SevenDays

+1

@wsevendays: Có phải hộp văn bản của bạn có nhiều dòng, tức là bạn đã đặt 'MultiLine = true'? Nếu không thì 'AcceptsReturn' không có hiệu lực cho mỗi tài liệu. –

+0

Điều khiển TextBox trong WP7 không có giá trị "MultiLine". – SevenDays

0

Tôi không quen với WP7 nhưng Windows nói chung sử dụng "\r\n" (ví dụ: cả hai ký tự sau dấu khác) để biểu thị ngắt dòng.

Nếu bạn nối thêm cả vào văn bản, nó có giải quyết được sự cố của bạn không?

Có nói rằng, tôi rất ngạc nhiên khi ngắt dòng đã nhập được xóa khỏi hộp văn bản. Khi bạn nói rằng văn bản không thể xem được trên máy chủ, bạn có ý nghĩa gì? Có phải là văn bản không được gửi đến và/hoặc được ghi trên máy chủ hay phương thức hiển thị trên máy chủ của bạn không hiển thị?

+0

Các văn bản trong hộp thoại (để cho nó được dịch vụ như facebook) hiển thị mà không linebreak, chỉ với không gian . – SevenDays

2

Environment.NewLine nếu nó giống như phát triển bình thường.

+0

Tuy nhiên, điều này dài hơn nhiều so với "\ r \ n" và tăng mã của bạn lên một chút nếu bạn có nhiều mã. Sự khác biệt là gì và tại sao bạn không sử dụng "\ r \ n"? – qJake

+0

Ai quan tâm nếu nó tiết lộ chi tiết hơn? Nó sẽ sửa lỗi của bạn khi bạn sử dụng ký tự dòng mới sai. Nó là một hằng số, nó có khả năng có thể thay đổi (ngay cả khi điều đó không chắc), chỉ cần sử dụng nó. Không ai quan tâm đến mã của bạn ngắn như thế nào, họ quan tâm nếu nó thực sự hoạt động. Nếu bạn không thích gõ nó, sau đó lưu trữ nó trong một biến đầu tiên; 'var nl = Environment.NewLine'. –

+0

Khi tôi gửi văn bản, dấu ngắt dòng trong hộp văn bản hiển thị dưới dạng dấu cách và dòng mới trong phần đầu của hộp văn bản, không phải ở cuối. – SevenDays

2

chỉ cần thêm dưới đây phạm vi mã XAML:

AcceptsReturn="True" TextWrapping="Wrap" 

một cái gì đó như thế này:

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