CSSの画像に対してfloat:leftのようなことをXAMLで行うことは可能ですか? 次のようなものを作成する必要があります。
画像のサイズとテキストの長さが可変です。
編集:私の場合、画像の周りのテキストワープは静的ではありません.TextBlock要素のリストを返すC#コードで作成されています(実行あり)
CSSの画像に対してfloat:leftのようなことをXAMLで行うことは可能ですか? 次のようなものを作成する必要があります。
画像のサイズとテキストの長さが可変です。
編集:私の場合、画像の周りのテキストワープは静的ではありません.TextBlock要素のリストを返すC#コードで作成されています(実行あり)
ソリューションは、このプレゼンテーションで説明されている RichTextBlockOverflow と OverflowContentTarget を使用しているようです: http://video.ch9.ms/build/2011/slides/APP-914T_Street.pptx
Silverlight 4 では、以下を使用してこれを実現しますRichTextBox
。
<RichTextBox TextWrapping="Wrap" IsReadOnly="False">
<Paragraph>
More text here ..
<InlineUIContainer>
<Image Source="abc.jpg"/>
</InlineUIContainer>
more and more text here;
<LineBreak />
</Paragraph>
</RichTextBox>
Win8 Metro にはRichTextBoxがあり、InlineUIContainerもあるように見えるので、上記のようなものが機能するはずです!
この質問は、あなたが望むものに似たものを求めているようです。ここでの答えは、あなたが望むものへの解決策を証明するはずです.
答えの要約は、FlowDocument
次の例のように使用します。
<FlowDocument>
<Paragraph>
<Floater HorizontalAlignment="Left">
<BlockUIContainer>
<Image Source="/FlowDocumentTest;component/dog.png" Width="100" />
</BlockUIContainer>
</Floater>
Here is where the text goes to wrap around the image.
</Paragraph>
</FlowDocument>
アップデート
あなたの質問が述べているように、現在、いくつかの C# コードを使用して TextBlock/Run 要素を生成しています。どちらも Paragraph オブジェクトの子にすることができます。だから、あなたのParagraph
好きな名前を付けてください:
<FlowDocument>
<Paragraph x:Name="textPara">
<Floater HorizontalAlignment="Left">
<BlockUIContainer>
<Image Source="/FlowDocumentTest;component/dog.png" Width="100" />
</BlockUIContainer>
</Floater>
</Paragraph>
</FlowDocument>
次に、C# で、生成されたTextBlock
s またはRun
s をInlines
textPara のプロパティに追加します。
var runToInsert = new Run("Some text to display");
textPara.Inlines.InsertAfter(textPara.Inlines.FirstInline, runToInsert);