1
私はWPFを使用してカスタムテキストエディタを作成していて、行をレンダリングするためにTextBlock
のスタックを使用しています。それで、の単語ラップを1行から次の行に検索する問題に私を導く。ワードラップを行う文字の幅を取得する
これを行うにはどのような方法が最適ですか?それぞれの文字/グリフの幅を見つける方法はありますか(文字ごとにFormatedText
クラスを作成する以外)?
私はWPFを使用してカスタムテキストエディタを作成していて、行をレンダリングするためにTextBlock
のスタックを使用しています。それで、の単語ラップを1行から次の行に検索する問題に私を導く。ワードラップを行う文字の幅を取得する
これを行うにはどのような方法が最適ですか?それぞれの文字/グリフの幅を見つける方法はありますか(文字ごとにFormatedText
クラスを作成する以外)?
this problemを解決するためにこれを行う必要がありました。たぶんあなたはそこにコードをチェックアウトすることができます。コードの関連部分は次のとおりです。
var textPointer = run.ContentStart;
textPointer = textPointer.GetPositionAtOffset(start, LogicalDirection.Forward);
var leftRectangle = textPointer.GetCharacterRect(LogicalDirection.Forward);
textPointer = textPointer.GetPositionAtOffset(length, LogicalDirection.Forward);
var rightRectangle = textPointer.GetCharacterRect(LogicalDirection.Backward);
var rect = new Rect(leftRectangle.TopLeft, rightRectangle.BottomRight);
var translatedPoint = uiHost.TranslatePoint(new Point(0, 0), null);
rect.Offset(translatedPoint.X, translatedPoint.Y);