1. ホーム
  2. wpf

[解決済み] WPFのTextBlockでテキストを複数行に表示させるには?

2022-02-12 13:50:42

質問

WPFウィンドウで、2つのビューポートを持つスタックパネルを持っています。

<Grid>
    <StackPanel VerticalAlignment="Center" Orientation="Vertical" >
        <Viewbox Margin="100,0,100,0">
            <TextBlock x:Name="headerText" Text="Lorem ipsum dolor" Foreground="Black"/>
        </Viewbox>
        <Viewbox Margin="150,0,150,0">
            <TextBlock x:Name="subHeaderText" Text="Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, " TextWrapping="Wrap" Foreground="Gray" />
        </Viewbox>
    </StackPanel>
</Grid>

私が実現したいのは、一番上のテキストブロックが大きなテキストを持つ見出しになることです。2番目のテキストブロックは、テキストを小さくした副見出しです。見出しや小見出しにどれだけテキストがあっても、フォントはダイナミックに小さくなったり大きくなったりするはずです。問題は、小見出しは固定幅にしたいことです。つまり、フォントは見出しの何パーセントか(70%)であり、テキストの量に応じて複数の行に折り返す必要があります。私はこれまで持っているコードを同封しました...私はその小見出しで何かを失っている、カントは何を把握することができます。乾杯

編集 基本的に、私が達成したいことは、サブヘッダーがテキストをラップし、そのフォントは見出しの70%で、下方に展開することができることです - そのフォントがどんなに大きくても。

どのように解決するのですか?

スタックパネルを入れ子にすることで、テキストボックスが正しく折り返されます。

<Viewbox Margin="120,0,120,0">
    <StackPanel Orientation="Vertical" Width="400">
        <TextBlock x:Name="subHeaderText" 
                   FontSize="20" 
                   TextWrapping="Wrap" 
                   Foreground="Black"
                   Text="Lorem ipsum dolor, lorem isum dolor,Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet " />
    </StackPanel>
</Viewbox>