Exporter (0) Imprimer
Développer tout

RichTextBox, classe

Mise à jour : novembre 2007

Représente un contrôle d'édition enrichi qui opère sur des objets FlowDocument.

Espace de noms :  System.Windows.Controls
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour 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 est le seul élément enfant pris en charge pour une RichTextBox.

Remarque importante :

RichTextBox possède une gestion intégrée des événements de propagationMouseUp et MouseDown. Par conséquent, les gestionnaires d'événements personnalisés qui restent à l'écoute d'événements MouseUp ou MouseDown d'une RichTextBox ne seront jamais appelés. Si vous devez répondre à ces événements, restez plutôt à l'écoute des événements de tunnelingPreviewMouseUp et PreviewMouseDown ou enregistrez les gestionnaires avec l'argument HandledEventsToo (cette dernière option n'est disponible que par l'intermédiaire du code). Ne marquez pas l'événement géré à moins que vous ne souhaitiez délibérément désactiver la prise en charge native RichTextBox de ces événements ; notez que cette opération a d'importants effets sur l'interface utilisateur du contrôle.

Bien que le copier coller d'images soit pris en charge par RichTextBox, certains scénarios ne sont actuellement pas pris en charge et peuvent ne pas fonctionner correctement. Le tableau suivant présente une synthèse de ces scénarios et des résultats attendus.

Source pour la copie de l'image

Résultat du collage de l'image

La source de l'image est un métafichier graphique

Aucune image n'est collée.

La source de l'image utilise un lien ou un chemin d'accès relatif.

Une image altérée ou vierge est collée.

Le lien de l'image source ne se termine pas par une extension de format d'image attendue (.PNG, .JPG, .GIF).

Une image altérée ou vierge est collée.

Source de l'image copiée à partir d'un format RTF incorrect.

Le lien vers la source de l'image est collé (et non l'image).

Coller du contenu HTML dans une RichTextBox peut entraîner un comportement inattendu car RichTextBox utilise le format RTF et non le format HTML directement.

Le texte est toujours mis à la ligne dans une RichTextBox. Si vous ne souhaitez pas que le texte soit mis à la ligne, définissez la propriété PageWidth sur le FlowDocument de sorte à obtenir une largeur de page supérieure à la largeur de RichTextBox. Toutefois, lorsqu'il atteint la largeur de la page, le texte continue à être mis à la ligne.

L'alignement horizontal et vertical du contenu dans une RichTextBox est effectué à l'aide des propriétés HorizontalContentAlignment et VerticalContentAlignment. L'alignement du RichTextBox dans la disposition de la page est effectué à l'aide des propriétés HorizontalAlignment et VerticalAlignment.

Par défaut, les barres de défilement ne sont pas visibles dans une RichTextBox. Pour faire apparaître une barre de défilement, affectez à la propriété VerticalScrollBarVisibility la valeur Visible ou Auto.

Habituellement, l'événement TextChanged doit être utilisé pour détecter toute modification de texte dans une TextBox ou une RichTextBox, plutôt que KeyDown, comme vous pourriez vous y attendre. Pour obtenir un exemple, consultez Comment : détecter la modification du texte figurant dans un TextBox.

Diverses commandes au clavier sont prises en charge par RichTextBox. Pour obtenir la liste de ces commandes, consultez EditingCommands.

L'exemple suivant signale une RichTextBox qui contient un FlowDocument simple.

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

        }
    }
}


Davantage de code

Comment : extraire le texte d'un RichTextBoxCet exemple montre comment extraire le contenu d'un RichTextBox sous la forme d'un texte brut.
Comment : positionner un menu contextuel personnalisé dans un RichTextBoxCet exemple indique comment positionner un menu contextuel personnalisé pour un RichTextBox.
Comment : remplacer l'hôte de contenu par défaut d'un RichTextBoxCet exemple montre comment utiliser des styles Windows Presentation Foundation (WPF) pour remplacer l'hôte de contenu par défaut d'un 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

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft