Saya mengambil teks dari file XML, dan saya ingin memasukkan beberapa baris baru yang diinterpretasikan oleh textblock render sebagai baris baru.
Saya sudah mencoba:
<data>Foo bar baz \n baz bar</data>
Namun data tersebut tetap ditampilkan tanpa adanya baris baru. Saya mengatur konten <data>
melalui .Text
properti melalui C #.
Apa yang harus saya masukkan ke dalam XML agar dapat membuat baris baru di GUI?
Saya sudah mencoba sesuatu seperti ini secara manual mengatur teks di XAML:
<TextBlock Margin="0 15 0 0" Width="600">
There
is a new line.
</TextBlock>
Dan sementara karakter yang disandikan tidak muncul di GUI, itu juga tidak memberi saya baris baru.
Jawaban:
Anda dapat mencoba meletakkan baris baru di data:
Jika itu tidak berhasil, Anda mungkin perlu mengurai string secara manual.
Kalau butuh direct XAML gampang caranya:
sumber
XmlSerializer
jeda akan dipertahankan. Dalam XAML yang Anda butuhkan<LineBreak/>
.Untuk kelengkapan: Anda juga bisa melakukan ini:
x0A adalah Umpan Garis heksadesimal yang lolos. Setara dengan \ n
sumber
Anda juga bisa menggunakan penjilidan
Dan atur MyText seperti ini:
sumber
Anda harus menggunakan
Atau jika Anda lebih suka:
hati-hati: jika Anda berdua menggunakan & 10 DAN Anda pergi ke baris berikutnya dalam teks Anda, Anda akan memiliki DUA baris kosong.
di sini untuk detailnya: http://msdn.microsoft.com/en-us/library/ms788746.aspx
sumber
Meskipun ini adalah pertanyaan lama, saya baru saja menemukan masalah dan menyelesaikannya secara berbeda dari jawaban yang diberikan. Mungkin bisa membantu orang lain.
Saya perhatikan bahwa meskipun file XML saya terlihat seperti:
Ketika itu dibaca ke dalam kode C # saya, string itu memiliki garis miring terbalik ganda.
Untuk memperbaikinya saya menulis ValueConverter untuk menghapus garis miring terbalik ekstra.
sumber
TextWrapping="Wrap"
(danAcceptsReturn="True"
jika ini adalah TextBox) di XAML pada TextBlock, Anda sudah benar, dan ini harus menjadi jawabannya - tetapi katakan saja lakukan.Replace()
pada nilai yang berasal dari database - tidak perlu fungsi mewah:valueAsString = valueAsString.Replace("\\r\\n", "\r\n");
Setiap nilai yang dimasukkan menggunakan tombol Return akan ditulis ke DB dengan baik - saat C # memegangnya untuk menampilkan nilai yang menyebabkan masalah, seperti yang Anda catat. Jadi ini perlu disebut onload teks.Jika semuanya gagal, Anda juga dapat menggunakan
sumber
sumber
Menggunakan System.Environment.NewLine adalah satu-satunya solusi yang berhasil untuk saya. Ketika saya mencoba \ r \ n, itu hanya mengulangi \ r \ n yang sebenarnya di kotak teks.
sumber
Anda harus memastikan bahwa textblock mengaktifkan opsi ini:
sumber
Sisipkan "baris baru" atau "baris baru" di RichTextBox "rtb" seperti ini:
Satu-satunya cara untuk mendapatkan item NewLine adalah dengan menyisipkan teks dengan item "\ r \ n" terlebih dahulu, dan kemudian menerapkan lebih banyak kode yang berfungsi pada objek Seleksi dan / atau TextRange. Ini memastikan bahwa item \ par dikonversi ke \ item baris, disimpan sesuai keinginan, dan masih benar saat membuka kembali file * .Rtf. Itulah yang saya temukan sejauh ini setelah usaha keras. Tiga baris kode saya perlu dikelilingi oleh lebih banyak kode (dengan loop) untuk mengatur item TextPointer (.Start .End .ContentStart .ContentEnd) di mana Lines dan Breaks harus pergi, yang telah saya lakukan dengan sukses untuk tujuan saya.
sumber