如何使用Silverlight 4中的按钮制作包装文本?
问题描述:
我想要一些包装文本后面跟着一个按钮,但我希望按钮在最后一行文本后立即出现。有点像这样:如何使用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。
[该按钮]
答
什么你想不会不幸工作。文本块是一个矩形,所以按钮将始终包裹在文本下方。但是,您可以使用文本块内的运行并做一些时髦的东西来正确定位按钮。幸运的是,Jeremy Likeness在这里使用附加属性做了一个很棒的博客文章:http://csharperimage.jeremylikness.com/2009/11/inline-hyperlinks-in-silverlight-3.html。他在文本中插入HyperlinkButton,但如果您愿意,可以将其更改为标准按钮。
希望这有助于...
克里斯
答
你将不得不使用SL4 RichTextBox控件得到你想要的结果:
<RichTextBox IsReadOnly="True" BorderThickness="0">
<Paragraph>
<Run Text="{Binding ErrorMessage}"/>
<InlineUIContainer>
<Button Content="Clear Error" />
</InlineUIContainer>
</Paragraph>
</RichTextBox>
答
用这个包裹按钮的内容,
<Button>
<Button.Content>
<TextBlock Text="Your wrap text is here" TextWrapping="Wrap"/>
</Button.Content>
</Button>
只需添加此代码内的版本, 'TextBlock tb = new TextBlock(); tb.Text =“一些长串”; tb.TextWrapping = TextWrapping.Wrap; MenuButton b = new MenuButton(); b.Content = tb;' – IEnumerable 2014-05-20 03:13:09