2016-08-16 4 views
1

Comment puis-je savoir Si l'utilisateur clique sur Enter dans le clavier dans RichEditBox?RichEditBox Comment savoir sur quelle ligne se trouve le curseur

ce code ne fonctionne pas

private void Editor_KeyDown(object sender, KeyRoutedEventArgs e) 
    { 
     var dia = new MessageDialog(e.Key + ""); 
     dia.ShowAsync(); 
    } 

aussi Ce code ne fonctionne pas

private void Editor_KeyDown(object sender, KeyRoutedEventArgs e) 
{ 
    if (e.OriginalKey == (VirtualKey)(char)13) 
    { 
     NumberEditor.Text += Convert.ToString(_LineNum) + Environment.NewLine; 
     ++_LineNum; 
    } 
} 

Comment puis-je obtenir la ligne de la ligne dans RichEditBox et comment puis-je modifier le texte du code dans RichEditBox?

Je veux faire un éditeur et toute aide est appréciée.

Cordialement

+0

Vous avez une réponse à cela? – Noorul

Répondre

0

Regard cette méthode:

private void ChangeLine() 
    { 
     var textRange = MyRichEditBox.Document.GetRange(MyRichEditBox.Document.Selection.StartPosition, MyRichEditBox.Document.Selection.StartPosition); 
     textRange.Expand(TextRangeUnit.Line); 

     //Change line size. 
     textRange.CharacterFormat.Size = 30; 

     //Center the paragraph 
     textRange.ParagraphFormat.Alignment = ParagraphAlignment.Center; 

     //this will change text of the range 
     textRange.Text = "My new text"; 
    } 

à partir du document que vous avez à ITextRange obtenir. Après cela, vous pouvez l'étendre à TextRangeUnit.Line et obtenir la ligne entière. Maintenant vous pouvez changer le style et le texte de la ligne.

Essayez ce code pour KeyDownEvent:

public sealed partial class TextEditPage : Page 
{ 
    private readonly KeyEventHandler _keyDownHandler; 

    //Constructor 
    public TextEditPage() 
    { 
     this.InitializeComponent(); 
     this.Unloaded += OnUnloaded; 

     //Add keydown event 
     this._keyDownHandler = OnKeyDown; 
     RtfBox.AddHandler(KeyDownEvent, this._keyDownHandler, true); 
    } 

    private void OnKeyDown(KeyRoutedEventArgs e) 
    { 
     //enter your code here 
    } 

    private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) 
    { 
     this.RemoveHandler(KeyDownEvent, _keyDownHandler); 
    } 
} 

Ne pas oublier d'enlever le gestionnaire dans Déchargé.