1. ホーム
  2. wpf

[解決済み] TextBlockのRuns間の空白をなくすには?

2023-06-06 08:10:39

質問

以下のようなXAMLがあります。

<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
                                               FontSize="10" FontFamily="Arial" Foreground="#414141">        
                                            <Run Text="{Binding LoadsCount}" />        
                                            <Run Text="+" />        
                                            <Run Text="{Binding BrokerLoadsCount}" />
                                        </TextBlock>

そして、このように表示されます。 12 + 11 なぜか、各 Run どうすれば 12+11 ?

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

runタグの間のスペースが原因です。これが最も簡単な修正方法です。

<TextBlock 
   HorizontalAlignment="Center" 
   VerticalAlignment="Center"
   FontSize="10" 
   FontFamily="Arial" 
   Foreground="#414141">        
      <Run Text="{Binding LoadsCount}" /><Run Text="+" /><Run Text="{Binding BrokerLoadsCount}" />
</TextBlock>

の間にあるものはすべて <TextBlock></TextBlock> はTextBlockのtextプロパティをターゲットにしているため、実行の間に空白があると、このような効果が発生します。 また、このように短くすることもできます。

<Run Text="{Binding LoadsCount}" />+<Run Text="{Binding BrokerLoadsCount}" />

この MSDN の記事には、xaml がどのように空白を処理するかについてのすべての詳細が記載されています。

http://msdn.microsoft.com/en-us/library/ms788746.aspx

なぜ改行と大量のタブが1つのスペースに変換されるのか不思議に思っていたら

すべての空白文字 (スペース、ラインフィード、タブ) はスペースに変換されます。 スペースに変換されます。

連続したスペースはすべて削除され、1つのスペースに置き換えられます。