webdevqa.jp.net

TextBlock / FlowDocumentの行間隔を小さくします

一部のフォントでは、文字の上下に大量の空白があります。これを修正し、WPF(TextBlockまたはFlowDocumentのいずれか)でワードラップされた段落の行間のスペースを狭める方法はありますか?行間の負のマージンのようなものですか?

LineHeightParagraphにはTextBlockプロパティがありますが、これを小さく設定すると、増加間隔-しか許可されないようです。デフォルトよりも値が大きい場合は、単に無視されます。

43
Joe White

以前と同じようにLineHeightを設定しますが、LineStackingStrategyBlockLineHeightに変更します

83
Joel

@Joelの答えを例示するために(これは5年後も非常に役立ちます:P)

    <StackPanel VerticalAlignment="Center">
        <Button Width="137" Height="47.96">
            <TextBlock Text="This is a very long text that gets cut because it is so long" TextWrapping="Wrap"/>
        </Button>
        <Button Width="137" Height="47.96">
            <TextBlock Text="This is a very long text that doesn't cut thanks to @Joel" TextWrapping="Wrap" 
                LineStackingStrategy="BlockLineHeight" LineHeight="13"/>
        </Button>
    </StackPanel>
3