Esta documentación está archivada y no tiene mantenimiento.

RichTextBox (Clase)

Actualización: noviembre 2007

Representa un control de edición completo que funciona en objetos FlowDocument.

Espacio de nombres:  System.Windows.Controls
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.Inherit)]
[ContentPropertyAttribute("Document")]
public class RichTextBox : TextBoxBase, 
	IAddChild
/** @attribute LocalizabilityAttribute(LocalizationCategory.Inherit) */
/** @attribute ContentPropertyAttribute("Document") */
public class RichTextBox extends TextBoxBase implements IAddChild
public class RichTextBox extends TextBoxBase implements IAddChild
<RichTextBox>
  Document
</RichTextBox>

FlowDocument es el único elemento secundario admitido para RichTextBox.

ms612650.alert_caution(es-es,VS.90).gifNota importante:

RichTextBox tiene control integrado para los eventos MouseUp y MouseDown de propagación. Por consiguiente, no se llamará nunca a controladores de eventos personalizados que realizan escuchas para los eventos MouseUp o MouseDown de RichTextBox. Si necesita responder a estos eventos, realice en su lugar escuchas para los eventos PreviewMouseUp y PreviewMouseDown de tunelización, o registre los controladores con el argumento HandledEventsToo (esta última opción sólo está disponible a través de código). No marque el evento administrado a menos que desee deshabilitar deliberadamente el control nativo de RichTextBox de estos eventos y sea consciente de que esto tiene efectos notables en la interfaz de usuario del control.

Aunque RichTextBox permite copiar y pegar imágenes, algunos escenarios no son actualmente compatibles y es posible que no funcionen correctamente. En la tabla siguiente se resumen estos escenarios y los resultados esperados.

Origen de la imagen copiada

Resultado de la imagen pegada

El origen de la imagen es un metarchivo gráfico

No se pega ninguna imagen

El origen de la imagen utiliza una ruta de acceso o vínculo relativos

Se pega una imagen confusa o en blanco

El vínculo de origen de la imagen no termina en un formato de imagen esperado (.PNG, .JPG, .GIF)

Se pega una imagen confusa o en blanco

Origen de la imagen copiada de RichText (RTF) incorrecto

Se pega el vínculo con el origen de la imagen (en lugar de la imagen)

Al pegar el contenido de HTML en RichTextBox, se puede producir un comportamiento inesperado porque RichTextBox utiliza formato RTF en lugar de usar directamente formato HTML.

El texto siempre se ajusta en un RichTextBox. Si no desea que se ajuste el texto, establezca PageWidth en FlowDocument para que sea mayor que el ancho de RichTextBox. No obstante, una vez que se alcanza el ancho de página, el texto se sigue ajustando.

La alineación horizontal y vertical de contenido en RichTextBox se realiza mediante las propiedades HorizontalContentAlignment y VerticalContentAlignment. La alineación de RichTextBox en el diseño de la página se realiza mediante las propiedades HorizontalAlignment y VerticalAlignment.

Las barras de desplazamiento no están visibles en RichTextBox de forma predeterminada. Para hacer que una barra de desplazamiento esté visible, establezca la propiedad VerticalScrollBarVisibility en Visible o Auto.

Normalmente, se debe utilizar el evento TextChanged para detectar que cambia el texto en un TextBox o RichTextBox en lugar de KeyDown como podría esperar. Para obtener un ejemplo, consulte Cómo: Detectar cuándo cambia el texto en un control TextBox.

RichTextBox admite diversos comandos de teclado. Para obtener una lista de comandos de teclado, vea EditingCommands.

En el ejemplo siguiente se declara un RichTextBox que contiene un simple FlowDocument.

<RichTextBox Name="richTB">
  <FlowDocument>
    <Paragraph>
      <Run>Paragraph 1</Run>
    </Paragraph>
    <Paragraph>
      <Run>Paragraph 2</Run>
    </Paragraph>
    <Paragraph>
      <Run>Paragraph 3</Run>
    </Paragraph>
  </FlowDocument>
</RichTextBox>


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Documents;
namespace SDKSample
{
    public partial class RichTextBoxExample : Page
    {
        public RichTextBoxExample()
        {

            StackPanel myStackPanel = new StackPanel();

            // Create a FlowDocument to contain content for the RichTextBox.
            FlowDocument myFlowDoc = new FlowDocument();

            // Add paragraphs to the FlowDocument.
            myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1")));
            myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2")));
            myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3")));
            RichTextBox myRichTextBox = new RichTextBox();

            // Add initial content to the RichTextBox.
            myRichTextBox.Document = myFlowDoc;

            myStackPanel.Children.Add(myRichTextBox);
            this.Content = myStackPanel;

        }
    }
}


Más código

Cómo: Extraer el contenido de texto de un control RichTextBoxEn este ejemplo se muestra cómo extraer el contenido de un control RichTextBox como texto sin formato.
Cómo: Colocar un menú contextual personalizado en un control RichTextBoxEn este ejemplo se muestra cómo colocar un menú contextual personalizado para un control RichTextBox.
Cómo: Reemplazar el host de contenido predeterminado en un control RichTextBoxEn este ejemplo se muestra cómo utilizar los estilos de Windows Presentation Foundation (WPF) para reemplazar el host de contenido predeterminado de un objeto RichTextBox.

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Control
              System.Windows.Controls.Primitives.TextBoxBase
                System.Windows.Controls.RichTextBox

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0
Mostrar: