El control RichEditBox no muestra le formato de los documentos RTF aunque esten bien formados – Metro – Windows 8 – C#
Artículo tomado de mi blog
http://juank.black-byte.com/csharp-richeditbox-rtf-metro-formato/
------------------
Algunas veces cuando cargamos documentos RTF en un RichEditBox nos llevamos la no muy grata sorpresa de que aunque se muestra el texto correctamente los formatos aplicados a este, como color, negrita, itálica, etc. no son tenidos en cuenta.
Podemos abrir los RTF en editores comoWordpad y allí se muestran correctamente. Este problema se debe a que el controlRichEditBox no esta preparado en todo momento para aplicar dichos formatos, razón por la cual no es recomendable asignar el texto del documento hasta no estar 100% seguro de que el control ha cargado en su totalidad, por ende se debe evitar cargar texto en este control en el constructor de su clase contenedora, y en su lugar hacerlo en el evento Loaded, ejemplo:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="Test.GroupDetailPage"
xmlns:local="using:Test"
xmlns:data="using:Test.Data"
xmlns:common="using:Test.Common"
mc:Ignorable="d">
<RichEditBox x:Name="Richtest" Loaded="LoadedEventHandler"/>
</common:LayoutAwarePage>
|
Este es el code Behind
|
1
2
3
4
5
6
|
private void LoadedEventHandler(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
var cadena = @"{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\colortbl;\red255\green0\blue0;}{\cf1 Hello World }{\b nice text}{\par}}";
rich.Document.SetText(TextSetOptions.FormatRtf, cadena);
}
|