2009-08-26 4 views
1

私はWPFを使用してカスタムテキストエディタを作成していて、行をレンダリングするためにTextBlockのスタックを使用しています。それで、の単語ラップを1行から次の行に検索する問題に私を導く。ワードラップを行う文字の幅を取得する

これを行うにはどのような方法が最適ですか?それぞれの文字/グリフの幅を見つける方法はありますか(文字ごとにFormatedTextクラスを作成する以外)?

答えて

3

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); 
関連する問題