Как сделать завернутый текст в линию с помощью кнопки в Silverlight 4? - PullRequest
2 голосов
/ 10 октября 2010

Мне бы хотелось, чтобы за каким-то заключенным текстом следовала кнопка, но я хочу, чтобы кнопка появлялась сразу после последней строки текста.Примерно так:

Lorem ipsum dolor sit amet, приверженец 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, ведущий адептирующий элит, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

[Кнопка]

Ответы [ 3 ]

4 голосов
/ 22 октября 2012

Используйте это для переноса содержимого кнопки,

<Button>
 <Button.Content>
     <TextBlock Text="Your wrap text is here" TextWrapping="Wrap"/>         
 </Button.Content>
</Button>
2 голосов
/ 10 октября 2010

Вы должны будете использовать элемент управления SL4 RichTextBox, чтобы получить желаемый результат:

<RichTextBox IsReadOnly="True" BorderThickness="0">
    <Paragraph>
        <Run Text="{Binding ErrorMessage}"/>
        <InlineUIContainer>
            <Button Content="Clear Error" />
        </InlineUIContainer>
    </Paragraph>
</RichTextBox>
2 голосов
/ 10 октября 2010

То, что вы пытаетесь, не сработает, к сожалению.Текстовый блок представляет собой прямоугольник, поэтому кнопка всегда будет переноситься вниз под текстом.Тем не менее, вы можете использовать прогоны внутри текстового блока и делать что-то интересное, чтобы правильно расположить кнопку.К счастью, у Джереми Ликенесса есть отличная запись в блоге о том, как сделать это здесь с помощью прикрепленных свойств: http://csharperimage.jeremylikness.com/2009/11/inline-hyperlinks-in-silverlight-3.html. Он вставляет в текст HyperlinkButton, но вы можете изменить его на стандартную кнопку, если хотите.

Надеюсь, это поможет ...

Крис

...