Microsoft MVP

Email y Rss

email rss

Klout

Seguidores en facebook

Timeline de mi Twitter

Tienes preguntas?

Ideas de un Conejo
Más allá de los sistemas de información: (C#)=> videojuegos, soluciones a problemas interesantes y Sistemas Operativos
XNA
C#
Sistemas Operativos
Varios
Windows Phone
WinRT
XAML
Azure
HTML 5
Acerca de

Mostrar colores de documentos RTF al cargarlos en un RichEditBox – WinRT – C#

May 8th, 2012 by JuanK

Follow @JuanKRuiz

Cuando cargamos documentos RTF en un RichEditBox esperamos que el formato siempre sea el adecuado, sin embargo en ocasiones, especialmente cuando nos entregan los RTF extraidos en una base de datos o en otros formatos diferentes de RTF, nos encontramos con que los textos coloreados no son procesados

EL color dentro de un archivo RTF se encuentra demarcado por medio de los ‘tag’ {\cf# donde # es un numero de color. De esta forma si buscamos dentro de un texto coloreado con RTF podemos encontrar un código como el que se ve a continuación:

        {\cf1 Hola Mundo} \b nice text\b0
    

Donde cf1 hace referencia a un color determinado. Retomando el planteamiento inicial es posible en algunos escenarios que el texto sea mkjostrado sin el formato de color, esto se debe a que RTF requiere que se establezca previamente una paleta de colores que indique, por ejemplo, a que color equivale cf1.

Para ello, justo al inicio del documento establecemos la ‘etiqueta’ \colortbl la cual contiene una lista de entradas, donde cada una de estas entradas representa un color, la siguiente muestra una lista de 2 colores definidos, el azul y el rojo.

    {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033 
    {\colortbl ;\red0\green0\blue255;\red255\green0\blue0;}
    }
    

Este color creado en nuestra ‘paleta de colores’ puede ser referido en cualquier parte del documento como cf1, de tal forma si deseamos escribir “Hola Mundo” en color azul y rojo basta con hacer lo siguiente:

    {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033 
    {\colortbl ;\red0\green0\blue255;\red255\green0\blue0;}
    {\cf1 Hola}{\cf2 Mundo}
    }
    

Si envias el documento (o sea la cadena de texto con la información) dentro de estos tag entonces al cargar la información dentro del RichEditBox debes asegurarte de indicarle el formato que debe aplicar, ejemplo:

    string cadena = @"{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033 
    {\colortbl ;\red0\green0\blue255;\red255\green0\blue0;}
    {\cf1 Hola}{\cf2 Mundo}
    }";
    MyRichEditBox.Document.SetText(TextSetOptions.FormatRtf, cadena);
    

De esta forma los documentos RTF cargados mostraran sus colores adecuadamente en un RichEditBox

Print Friendly

Follow @JuanKRuiz

  • No hay comentarios »
  • Publicado en la categoría 'C#, Windows 8, WinRT'

Deja un comentario

Redes Sociales

Follow @JuanKRuiz
Answer Questions

Busca en el blog

Artículos Relacionados

  • El control RichEditBox no muestra le formato de los documentos RTF aunque esten bien formados – WinRT – C#
  • Cómo utilizar controles de lista para mostrar colecciones de datos en WinRT? – C# – XAML
  • RichEditBox muestra caracteres extraños al abrir documento RTF C# – Windows 8 – Metro
  • Cómo crear agrupamiento utilizando listas en WinRT? XAML- C#
  • C# – XAML – Windows 8 SemanticZoom : Cómo hacer zoom sobre un ítem específico
  • ViewBox, SemanticZoom , zoom para aumentar la profundidad de los datos, no el tamaño de las imágenes – XAML Windows 8 RT
  • El modelo de aplicacion de Windows 8 – Windows RT : Suspend – C#
  • Artículos Relacionados

  • El control RichEditBox no muestra le formato de los documentos RTF aunque esten bien formados – WinRT – C#
  • Cómo utilizar controles de lista para mostrar colecciones de datos en WinRT? – C# – XAML
  • RichEditBox muestra caracteres extraños al abrir documento RTF C# – Windows 8 – Metro
  • Cómo crear agrupamiento utilizando listas en WinRT? XAML- C#
  • C# – XAML – Windows 8 SemanticZoom : Cómo hacer zoom sobre un ítem específico
  • ViewBox, SemanticZoom , zoom para aumentar la profundidad de los datos, no el tamaño de las imágenes – XAML Windows 8 RT
  • El modelo de aplicacion de Windows 8 – Windows RT : Suspend – C#
  • Nube de Temas

    API - Azure - C# - codigo - Forms - IE - IE9 - Image - imagenes - IT - Microsoft - MVP - Pinned - PowerShell - Proceso - rendimiento - RSS - sistema - Sistemas Operativos - Site - Visual - WCF - Windows - Windows 8 - Windows Store - WinRT - WndProc - WPF - XAML - XNA

    Blogs recomendados

  • VBCodigoPocketPC Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)
  • Róbinson Moscoso Estaré publicando acá cosas sobre tecnologia .NET, situacioines cotidianas de las que voy aprendiendo… sirve como extensión de memoria.
  • .Net C# Blog de Nelsón Venegas
  • Warnov Microsoft Developer Evangelist
  • IT LIfe Blog de mi Hermano que esta en el lado claro: IT
  • Sorey Garcia Una chica del común con la firme intención de no serlo
  • Black Byte videojuegos, modelado y animación 3d
  • Road to IT World Cosas interesantes de IT
  • Marcela Chitiva Un poco de esto… un poco de aquello
  • Surviving the Nigth El mejor blog para aquellos que nos gustan los “internals”
  • Meta

    1. Log in
    2. WordPress

    Ideas de un Conejo is powered by Wordpress. Theme designed by Juan Carlos Ruiz.