2010-10-09 89 views
2

我想要一些包裝文本後面跟着一個按鈕,但我希​​望按鈕在最後一行文本後立即出現。有點像這樣:如何使用Silverlight 4中的按鈕製作包裝文本?

Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。[該按鈕]

這是我在這樣當前的嘗試,但始終按鈕上顯示出的下一行,而不是在網上與最後一句。我認爲WrapPanel會照顧到這一點,但我假設TextBlock的邊界框填充整行。

<toolkit:WrapPanel Orientation="Horizontal" 
    Visibility="{Binding HasErrorMessage, 
     Converter={StaticResource BooleanToVisibilityConverter}, Mode=OneWay}"> 
    <TextBlock 
     Foreground="{StaticResource ErrorColorBrush}" TextWrapping="Wrap" 
     Text="{Binding ErrorMessage, Mode=OneWay}"/> 
    <Button 
     Click="ClearErrorButton_Click" 
     Content="Clear Error"/> 
</toolkit:WrapPanel> 

不正確的輸出看起來是這樣的:

Lorem存有悲坐阿梅德,consectetur adipisicing ELIT,sed的做eiusmod tempor incididunt UT labore等dolore麥格納aliqua。

[該按鈕]

回答

2

什麼你想不會不幸工作。文本塊是一個矩形,所以按鈕將始終包裹在文本下方。但是,您可以使用文本塊內的運行並做一些時髦的東西來正確定位按鈕。幸運的是,Jeremy Likeness在這裏使用附加屬性做了一個很棒的博客文章:http://csharperimage.jeremylikness.com/2009/11/inline-hyperlinks-in-silverlight-3.html。他在文本中插入HyperlinkBut​​ton,但如果您願意,可以將其更改爲標準按鈕。

希望這有助於...

克里斯

2

你將不得不使用SL4 RichTextBox控件得到你想要的結果:

<RichTextBox IsReadOnly="True" BorderThickness="0"> 
    <Paragraph> 
     <Run Text="{Binding ErrorMessage}"/> 
     <InlineUIContainer> 
      <Button Content="Clear Error" /> 
     </InlineUIContainer> 
    </Paragraph> 
</RichTextBox> 
4

用這個包裹按鈕的內容,

<Button> 
<Button.Content> 
    <TextBlock Text="Your wrap text is here" TextWrapping="Wrap"/>   
</Button.Content> 
</Button> 
+0

只需添加此代碼內的版本, 'TextBlock tb = new TextBlock(); tb.Text =「一些長串」; tb.TextWrapping = TextWrapping.Wrap; MenuButton b = new MenuButton(); b.Content = tb;' – IEnumerable 2014-05-20 03:13:09

相關問題