0

(この質問は回答が得られていないため、言い直しました)

私のアプリケーションには、リッチ テキスト ボックスを保持するダイアログがあり、ボックスには Twitter から収集したツイートが表示されます。ツイート エンティティを使用して、ツイート内のリンク、メンション、およびハッシュタグへのインライン ハイパーリンクを含むようにツイートをフォーマットします。ただし、ハイパーリンクが正しく配置されることはありません。常に 2 ~ 3 文字で、早すぎたり遠すぎたりします。

これは、リッチ テキスト ボックスにテキストを設定するために使用するコードです。

TweetText.Document.ContentEnd.InsertTextInRun(Status.Text)
Dim FlowDocument As FlowDocument = TweetText.Document
If LinkEntity.Count > 0 Then
            For Each Entity As Entities.TwitterUrlEntity In LinkEntity
                Dim Start As TextPointer = FlowDocument.ContentStart
                Dim StartPosition As TextPointer
                Dim EndPosition As TextPointer
                If Entity.StartIndex = 0 Then
                    StartPosition = Start.GetPositionAtOffset(Entity.StartIndex)
                Else
                    StartPosition = Start.GetPositionAtOffset(Entity.StartIndex)
                End If
                EndPosition = Start.GetPositionAtOffset(Entity.StartIndex + Entity.DisplayUrl.Length, LogicalDirection.Backward)
                Dim h As New Hyperlink(StartPosition, EndPosition)
                AddHandler h.MouseLeftButtonDown, AddressOf Hyperclick_Link
                h.NavigateUri = New Uri(Entity.Url)
                h.Cursor = Cursors.Hand
            Next
        End If
'I have the other entities here, they have very similar code'
TweetText.Document = FlowDocument

これは私のリッチ テキスト ボックス XAML です。

<RichTextBox Name="TweetText" Margin="5" FontSize="14" BorderThickness="0" IsReadOnly="True" />

これは出力です:

問題!

ツイート エンティティには各エンティティの適切なインデックスがありますが、Rich Text Box にはこのオフセットの原因となっている隠し文字があると思います。

4

2 に答える 2