1

WPF RichTextBoxで、ハイパーリンク用の単純な「遅延読み込みツールチップ」を作成したいと思います。

私は次のようなポップアップコントロールでこれを行います:

    private Popup popup;
    private void Hyperlink_MouseEnter(object sender, MouseEventArgs e)
    {
        Hyperlink hyper = sender as Hyperlink;
        popup = new Popup();
        popup.Child = new Label() { Content = "content of the popup" };
        popup.IsOpen = true;
        var pos = e.GetPosition(richTextBox);
        popup.Placement = PlacementMode.RelativePoint;
        popup.PlacementTarget = richTextBox;
        popup.HorizontalOffset = pos.X;
        popup.VerticalOffset = pos.Y + 30;
    }

これを実現するには、特定のハイパーリンク要素の高さ(ピクセル単位)を測定する必要があるため、この「30」定数を正しい値に置き換えることができます。

WPFでハイパーリンクの高さを測定する方法はありますか?

4

1 に答える 1

1

フォントの高さを測定し、 Font.Heightこれを要素のベース位置とともに使用して、ツールチップを配置する高さを決定します。

于 2012-08-02T18:41:22.413 に答える