2017-08-11 5 views
1

FloaterRunの従来のFlowDocumentセットアップを使用して、画像の周りにテキストを折り返しています。私は理解していない空白を先取りします。誰でも助けることができますか? (誰もが、Runを取り除くことを提案する前に、データバインディングを使ってテキストが入力される状況があるため、ここで実際のRun要素を使用したいと思います)。FlowDocumentの先頭の空白を説明できません

<FlowDocumentScrollViewer VerticalScrollBarVisibility="Auto">     
    <FlowDocument PagePadding="5" TextAlignment="Left"> 
     <Paragraph FontFamily="Segoe UI" FontSize="12"> 
      <Floater Width="32" HorizontalAlignment="Left" Margin="0,0,2,2" Padding="0"> 
       <BlockUIContainer> 
        <Image Width="28" Height="28" Source="../imgscr/BassClef_32x.png" />       
       </BlockUIContainer> 
      </Floater> 
      <Run Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et ante erat. Duis ut scelerisque nisl. Maecenas rutrum sapien vel dolor imperdiet egestas. Duis vel purus at leo hendrerit venenatis. Aenean nibh dui, ornare eu consequat nec, dapibus vel mauris. In bibendum urna efficitur ipsum auctor consequat. Phasellus nunc neque, mollis eget felis eu, placerat pharetra velit. Sed auctor posuere turpis vitae lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit." /> 
     </Paragraph> 
    </FlowDocument> 
</FlowDocumentScrollViewer> 

先頭の空白は(Loremの中にLの前にそれに気づく)実行時に、ビジュアルXAMLエディタで表示されているので、これは意図した動作のように見えます。なぜ、どのように私はこれを解決するか説明することができますか?私はSnoopを介してビジュアルツリー全体をチェックして原因を見つけることができません。

Leading Whitespace - Why?

+1

それは[ 'TextIndent'](HTTPSから来ることでした:// MSDN .microsoft.com/ja-kr/library/system.windows.documents.paragraph.textindent)のプロパティは、何とか 'Paragraph'のスタイルですか? –

+0

これを実行しても問題は解決しません。 ''もしそうなら、それはデフォルトの動作です - 私はコードベースのどこにでもTextIndentへの参照を持っていません。そして、私はどこにでも私の様々なFlowDocument要素をスタイリングしていません。 – Drakestar

+0

ブランドの新しいプロジェクトを作成し、XAMLを新しいウィンドウに貼り付けると、同じ動作が見られます。 –

答えて

4

このように、フローターと実行の端部との間の空白を削除します。

</Floater><Run Background="Red" 
       Text="Lorem ipsum dolor sit 

enter image description here

+0

私のためにそれを修正します。私のXAMLフォーマッタはそれを気に入らず、 'Run'を次の行に移動しようとします。私はXAMLの書式設定がこのような出力にどのように影響しているのか本当に気に入らない。ソースの要素の配置は、レイアウトに影響してはなりません。 –

+0

はい、Visual StudioのXAMLエディタでCtrl + K、Dもこれを行います。あまりにもスマートにしようとするツールもあります。 – Tom

+0

これは確かに答えです。そして、実際にはVSのバグとして私を襲ってきます(VS2015を使って):XAMLの ''文の後には実際の空白文字はありませんでした。また、次の行の ' 'の前にある先頭の空白文字は、(スペースやタブを使ってその行をインデントするかどうかにかかわらず)1つの空白文字を生成しません。両方のXAML要素の間に改行文字があるようですが、先頭のスペースとして解釈されます。解決策は、両方のステートメントを同じ行に入れることです。 – Drakestar

関連する問題