2009-06-27 17 views

Répondre

6

Trouvé this article décrivant comment faire ce que j'ai besoin de faire. Il s'avère que vous pouvez définir à la fois le PlacementTarget de la zone de texte et le PlacementRectangle de GetRectFromCharacterIndex et cela fonctionnera.

+0

Si quelqu'un se demande comment faire de même avec _RichTextBox_: 'richTextBox.CaretPosition.GetCharacterRect (LogicalDirection.Forward)' – JobaDiniz

1

Découvrez this example.

+0

Je veux faire apparaître le menu contextuel à côté du signe d'insertion (type d'intellisense), pas simplement remplacer le menu contextuel par défaut. – RandomEngy

0

Je pense que vous devrez obtenir l'index de caractère du carat et ensuite transformer cela en coordonnées de pixel en appelant TextRenderer.MeasureText() sur le texte à gauche du carat. C'est évidemment plus compliqué si votre TextBox est multiligne. Est-ce?

+0

C'est une ligne simple, heureusement. Je vais donner à la chose de texte de mesure un coup de feu. – RandomEngy

+0

TextRenderer.MeasureText() semble être pour WinForms, pas WPF. J'ai trouvé l'équivalent pour WPF, mais j'ai du mal à saisir la position de la TextBox dont j'ai besoin pour calculer le point d'ancrage du menu contextuel. – RandomEngy

+0

Oh, WPF. Même si vous avez utilisé la balise WPF, vous devriez probablement avoir ce type d'information dans la question. – Fantius

Questions connexes