´

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);
}

 

Posted: 11/5/2012 15:23 por Juan Carlos Ruiz Pacheco | con no comments
Comparte este post: