我想要一些包装文本后面跟一个按钮,但我希望按钮在最后一行文本后立即出现。有点像这样:
Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 [The Button]
这是我目前的尝试,但按钮始终显示在下一行,而不是与最后一句一致。我认为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 ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。
[按钮]
答案 0 :(得分:4)
用它来包装按钮内容,
<Button>
<Button.Content>
<TextBlock Text="Your wrap text is here" TextWrapping="Wrap"/>
</Button.Content>
</Button>
答案 1 :(得分:2)
不幸的是,你所尝试的内容将无法运作。文本块是一个矩形,因此按钮将始终在文本下方包裹。但是,你可以在文本块中使用run并做一些时髦的东西来正确定位你的按钮。幸运的是,Jeremy Likeness在这里使用附加属性有一篇很棒的博客文章:http://csharperimage.jeremylikness.com/2009/11/inline-hyperlinks-in-silverlight-3.html。他在文本中插入了一个HyperlinkButton,但如果愿意,可以将其更改为标准按钮。
希望这会有所帮助......
克里斯
答案 2 :(得分:2)
您必须使用SL4 RichTextBox控件来获得所需的结果:
<RichTextBox IsReadOnly="True" BorderThickness="0">
<Paragraph>
<Run Text="{Binding ErrorMessage}"/>
<InlineUIContainer>
<Button Content="Clear Error" />
</InlineUIContainer>
</Paragraph>
</RichTextBox>