0

これはこれに尋ねられる多くの同様の質問ですが、良い答えはありませんか?コンテキスト描画を使用して、特定の長方形のサイズ「720,576」で入力テキストを描画します。行数を維持しながら、テキスト全体を最大フォントサイズに合わせる必要がありますか?

私はそれを計算するための方程式を作成しようとしましたが、役に立たなかった。テキストがクリップされるまでサイズをループしようとしましたが、その状態をテストできませんでした。1週間検索して、似たようなものを見つけましたが、役に立ちませんでした。

最後に、私が望むものに近いビューボックスを使用しようとしましたが、幅のサイズが常に1行にすべてのテキストを含むため、内部のテキストブロックが複数行になることはありません。

これが私が得たものです:

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="720" Width="576">
<Viewbox >
    <TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center Text="how are you doining how are you doining how are you doining how are you doining how are you doining how are you doining how are you doining how are you doining how are you doining" " />
</Viewbox>

助けていただければ幸いです、ありがとう。

4

2 に答える 2

0

私は同じ問題を抱えていました。ここに修正があります:

<Viewbox StretchDirection="DownOnly">
    <Grid MaxWidth="1000" MaxHeight="100">
         <TextBlock TextWrapping="Wrap" FontSize="42" VerticalAlignment="Center" Text="very very very very very very very very very very very very very very very very long line"/>
    </Grid>
</Viewbox>

したがって、テキスト行を拡張すると、それほど小さくなくなるまでサイズが変更され、次の行に折り返されます

于 2013-02-17T23:49:49.343 に答える
0

新しいプロジェクトにコピー/貼り付けた例だけでは、説明した動作を再現できません。テキストは数行に渡って書かれています。おそらく、1つのオブジェクト、おそらくテキストボックスにデフォルトのセッターがあります...

非常に簡単です。TextBox の幅を設定すると、TextBox が折り返されます。たぶん、ViewBox の幅 (先祖バインディング) の幅を持ちたいと思うかもしれません。

于 2012-07-09T20:24:19.957 に答える