El control RichEditBox no muestra le formato de los documentos RTF aunque esten bien formados – WinRT – C#
May 8th, 2012 by JuanK
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 control RichEditBox 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:
<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="Test.GroupDetailPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Test"
xmlns:data="using:Test.Data"
xmlns:common="using:Test.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<RichEditBox x:Name="Richtest" Loaded="LoadedEventHandler"/>
</common:LayoutAwarePage>
Este es el code Behind
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);
}
- No hay comentarios »
- Publicado en la categoría 'C#, Windows 8, WinRT'

Wordpress