2012-05-04 25 views
8

XAML'de ffloat gibi bir şey yapılabilir: CSS'deki bir görüntü için sol. Böyle bir şey oluşturmanız gerekir: değişken görüntü boyutları ve metin uzunluğuXAML'de görüntü nasıl "yüzer" (Windows 8 Metro)

enter image description here

.

Düzenleme: resmin etrafında metin çözgü benim durumumda statik değil, benzer bir şey soruyor (çalıştırır birlikte) TextBlock elemanlarının listesini döndürür C# kodu

cevap

1

This question görünüyor oluşturmak olduğunu ne istersen. here cevabı, isteğinize göre bir çözüm sunmalıdır.

cevap özeti, aşağıdaki örneğe benzer bir FlowDocument kullanmak edilir:

<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> 

Güncelleme soru devletler olarak

, artık TextBlock/Çalıştır oluşturmak için bazı C# kodu kullanıyor Öğeler, her ikisi de bir Paragraf nesnesinin çocukları olabilir. Yani basitçe adını siz Paragraph şöyle:

<FlowDocument> 
    <Paragraph x:Name="textPara"> 
     <Floater HorizontalAlignment="Left"> 
      <BlockUIContainer> 
       <Image Source="/FlowDocumentTest;component/dog.png" Width="100" /> 
      </BlockUIContainer> 
     </Floater> 
    </Paragraph> 
</FlowDocument> 

Ardından C#, yani textPara ait Inlines özelliğine Oluşturulan TextBlock s veya Run s eklenir

var runToInsert = new Run("Some text to display"); 
textPara.Inlines.InsertAfter(textPara.Inlines.FirstInline, runToInsert); 
+0

Soruyu düzenlenebilir. Metin açık benim durumumda statik değil, bir sürü metin kutusu. Onları bir StackPanel'e yerleştiriyorum ama bunları nasıl ekleyebilirim? –

+0

Cevabımı, içeriği dinamik olarak nasıl ekleyebileceğinizle güncelledik. – Lukazoid

+0

Bir Paragraftaki Paragprah'ın geçerli olduğunu düşünmüyorum. The compiler agress –

3

Silverlight 4 ile kullanarak bunu başarmak istiyorum bir RichTextBox: Bu Win8 Metro benziyor

<RichTextBox TextWrapping="Wrap" IsReadOnly="False"> 
    <Paragraph> 
     More text here .. 
     <InlineUIContainer> 
      <Image Source="abc.jpg"/> 
     </InlineUIContainer> 
     more and more text here; 
     <LineBreak /> 
    </Paragraph> 
</RichTextBox> 

bir RichTextBox sahiptir ve ayrıca bir InlineUIContainer var, bu yüzden yukarıdaki gibi bir şey çalışması gerekir!

+0

Bunu C# ile nasıl yaratıyorsunuz? Ben TextBlocks (Run ile) bir listesini var, bu yüzden ben bir tane bu itfaiye dönüştürebiliriz ve ben ok olurdu –

+0

işe yaramaz görünüyor http://dl.dropbox.com/u/73642/flow.png –

İlgili konular