2013-04-09 73 views
0

如上所述,我希望將兩個RichTextBlocks垂直放置一個接一個。我的意圖是手動編寫第一個RichTextBlock的段落,並且我希望第二個RichTextBlock(它的內容是以編程方式給出的)在第一個RichTextBlock後面開始,並且我希望這樣做會使第二個RichTextBlock垂直溢出下一列。如何在RichTextColumns中垂直放置兩個RichTextBlock(溢出)

以下代碼片段旨在讓您可以看到我正在使用的對象,並且沒有任何邏輯含義。

<ScrollViewer 
     Grid.Column="1" 
     Grid.Row="1" 
     Grid.RowSpan="2" 
     HorizontalScrollMode="Auto" 
     HorizontalScrollBarVisibility="Auto" 
     VerticalScrollMode="Disabled" 
     VerticalScrollBarVisibility="Disabled" 
     Padding="20"> 

      <RichTextBlock> 
       <Paragraph><Run></Run></Paragraph> 
      <RichTextBlock /> 

      <common:RichTextColumns> 
       <common:RichTextColumns.ColumnTemplate> 
        <DataTemplate> 
         <RichTextBlockOverflow Margin="80,0,0,0" Width="560"> 
          <RichTextBlockOverflow.RenderTransform> 
           <TranslateTransform X="-1" Y="4"/> 
          </RichTextBlockOverflow.RenderTransform> 
         </RichTextBlockOverflow> 
        </DataTemplate> 
       </common:RichTextColumns.ColumnTemplate> 
       <RichTextBlock 
          htmlToXaml:Properties.Html="{Binding HtmlText}" 
          Name="RichTextBlockMy" 
          Margin="10,0,0,0" 
          Style="{StaticResource ItemRichTextStyle}" 
          Width="560"/> 
      </common:RichTextColumns> 
    </ScrollViewer> 
+0

您的代碼似乎不正確。沒有開始''標籤 – Xyroid 2013-04-09 16:05:58

+0

但我告訴過你,這段代碼指定給你知道我正在使用什麼對象,所以我放在那裏的無意義的「運行」在那裏告訴你,我想把這個RichTextBlock稍後手動部分段落。 – 2013-04-10 06:37:47

回答

0

我認爲這是你想要的。

XAML

<ScrollViewer 
    HorizontalScrollMode="Auto" 
    HorizontalScrollBarVisibility="Auto" 
    VerticalScrollMode="Disabled" 
    VerticalScrollBarVisibility="Disabled" 
    Padding="20"> 
    <StackPanel Orientation="Horizontal"> 

     <RichTextBlock> 
      <Paragraph> 
       <Run Text="This is fixed RichTextBlock, after this it's RichTextBlock with RichTextColumns" FontSize="20"/> 
       <LineBreak /> 
       <Run Text="{Binding FirstRtbText}" /> 
       <LineBreak /> 
       <Run Text="End of fixed RichTextBlock" FontSize="20" /> 
      </Paragraph> 
      </RichTextBlock> 

      <common:RichTextColumns> 
      <common:RichTextColumns.ColumnTemplate> 
       <DataTemplate> 
        <RichTextBlockOverflow Margin="80,0,0,0" Width="560"> 
         <RichTextBlockOverflow.RenderTransform> 
          <TranslateTransform X="-1" Y="4"/> 
         </RichTextBlockOverflow.RenderTransform> 
        </RichTextBlockOverflow> 
       </DataTemplate> 
      </common:RichTextColumns.ColumnTemplate> 
      <RichTextBlock 
        common:Properties.Html="{Binding HtmlText}" 
        Name="RichTextBlockMy" 
        Margin="10,0,0,0" 
        Style="{StaticResource ItemRichTextStyle}" 
        Width="560"/> 
     </common:RichTextColumns> 
    </StackPanel> 
</ScrollViewer> 

C#

public string HtmlText { get; set; } 
    public string FirstRtbText { get; set; } 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     FirstRtbText = @"<h1>Header One</h1> 

<p>Lorem ipsum <em>emphasised text</em> dolor sit amet, <strong>strong text</strong> 
consectetur adipisicing elit, <abbr title="""">abbreviated text</abbr> sed do eiusmod tempor 
<acronym title="""">acronym text</acronym> incididunt ut labore et dolore magna aliqua. Ut 
<q>quoted text</q> enim ad minim veniam, quis nostrud exercitation <a href=""/"">link text</a> 
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute <del>deleted text</del> 
<ins>inserted text</ins> irure dolor in reprehenderit in voluptate velit esse cillum 
dolore eu fugiat nulla pariatur. Excepteur sint occaecat <code>code text</code> cupidatat 
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 

<blockquote> 
<p>Blockquote. Velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia</p> 
</blockquote>"; 

      HtmlText = @"<h1>Header One</h1> 

<p>Lorem ipsum <em>emphasised text</em> dolor sit amet, <strong>strong text</strong> 
consectetur adipisicing elit, <abbr title="""">abbreviated text</abbr> sed do eiusmod tempor 
<acronym title="""">acronym text</acronym> incididunt ut labore et dolore magna aliqua. Ut 
<q>quoted text</q> enim ad minim veniam, quis nostrud exercitation <a href=""/"">link text</a> 
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute <del>deleted text</del> 
<ins>inserted text</ins> irure dolor in reprehenderit in voluptate velit esse cillum 
dolore eu fugiat nulla pariatur. Excepteur sint occaecat <code>code text</code> cupidatat 
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 

<blockquote> 
<p>Blockquote. Velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia</p> 
</blockquote> 

<p><cite><a href=""/"">Cite author with link text</a></cite>, 2008</p> 

<h2>Header 2</h2> 

<p>Extended paragraph. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 

<ol> 
<li>Ordered list</li> 
<li>Item 2 Consectetur adipisicing elit</li> 
<li>Item 3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
incididunt ut labore et dolore magna aliqua</li> 
<li>Item 4</li> 
<li>Item 5</li> 
</ol> 

<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.</p> 

<h3>Header 3</h3> 

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.</p> 

<ul> 
<li>Unordered list</li> 
<li>Consectetur adipisicing elit</li> 
<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua</li> 
<li>Item</li> 
<li>Item</li> 
<li>Item</li> 
</ul> 

<p>Lorem ipsum dolor sit amet,consectetur adipisicing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.</p> 

<pre><code>pre and code pair{ 
display:block; 
line-height:1.833em; 
border-top:0.083em solid #200; 
}</code></pre> 

<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.</p> 

<h4>Header 4</h4> 

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.</p> 

<dl> 
<dt>Definition list</dt> 
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna 
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat.</dd> 
<dt>Lorem ipsum dolor sit amet</dt> 
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna 
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat.</dd> 
<dt>Lorem ipsum dolor sit amet</dt> 
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna 
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat.</dd> 
<dt>Lorem ipsum dolor sit amet</dt> 
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna 
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat.</dd> 
</dl> 

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.</p> 

<table summary=""Table summary""> 
<caption>Table Caption</caption> 
<thead> 
<tr> 
<th>Header</th><th>Header</th><th>Header</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td>Content</td><td>1</td><td>a</td> 
</tr> 
<tr> 
<td>Content</td><td>2</td><td>b</td> 
</tr> 
<tr> 
<td>Content</td><td>3</td><td>c</td> 
</tr> 
<tr> 
<td>Content</td><td>4</td><td>d</td> 
</tr> 
<tr> 
<td>Content</td><td>5</td><td>e</td> 
</tr> 
<tr> 
<td>Content</td><td>6</td><td>f</td> 
</tr> 
</tbody> 
</table> 

<address>Author text</address> 
"; 

      this.DataContext = this; 
     } 
+0

我看到你把那裏水平StackPanel,並馬上我可以告訴這不是我想要的。我希望第二個RichTextBlock出現在第一個RichTextBlock的下面,當第二個RichTextBlock的內容變爲第一列的末尾時,它會溢出到第二列(我希望第二列從第一列的起始y位置開始第一個RichTextBlock ... – 2013-04-11 07:24:32

+0

然後,你可以使用單個'RichTextBlock'並使用靜態+動態文本設置它的屬性,也可以使用'WrapPanel'而不是'StackPanel' – Xyroid 2013-04-11 07:30:58

+0

「靜態+動態文本」的思想是我現在我在做,但我想在Xaml編輯器窗口中編寫靜態內容,而不需要將其複製到代碼隱藏文件中。 – 2013-04-11 12:28:54