WPF Inlines.add: предотвратить разрыв строки - PullRequest
0 голосов
/ 06 мая 2019

Я работаю в проекте WPF, и я новичок в этой области.Мне нужно добавить ссылку программно.До и после ссылки хочу добавить несколько слов.После слов перед ссылкой я поставил перевод строки.Но слова после ссылки не должны иметь перенос строки, а должны продолжаться в той же строке .Но я получаю разрыв строки после каждого элемента, который я добавляю с помощью inlines.add.

Любое решение?

Вот мой код:

        TextBlock tb = new TextBlock();

        tb.Inlines.Add("this is my prefix 
");
        Hyperlink h = new Hyperlink();
        h.NavigateUri = new System.Uri(helpLinkURL);
        h.Inlines.Add("here is link text");
        h.RequestNavigate += Hyperlink_RequestNavigate;
        tb.Inlines.Add(h);
        tb.Inlines.Add("this is my suffix");
        helpLinkPlaceHolder.Inlines.Add(tb);

Iget:

это мой префикс

вот текст ссылки

это мой суффикс

И вот что я хочу получить:

это мой префикс

вот текст ссылки это мой суффикс

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Таким образом, вы можете сделать это в коде:

var hyperlink = new Hyperlink(new Run("here is link text"))
{
    NavigateUri = new Uri("https://google.com")
};
hyperlink.RequestNavigate += Hyperlink_RequestNavigate;

var textblock = new TextBlock
{
    Inlines =
    {
        new Run("this is my prefix"),
        new LineBreak(),
        hyperlink,
        new Run(" this is my suffix")
    }
};
placeholderContentControl.Content = textblock;

placeholderContentControl имеет тип <ContentControl>


Как это сделатьв XAML:

<Grid>
    <TextBlock Grid.Row="0">
        this is my prefix
        <LineBreak />
        <Hyperlink NavigateUri="https://google.com" RequestNavigate="Hyperlink_RequestNavigate">
            here is link text
        </Hyperlink>
        this is my suffix
    </TextBlock>
</Grid>

оба результата дают запрошенный результат: изображение

0 голосов
/ 06 мая 2019

Попробуйте использовать Выполнить вместо TextBlock. Он имеет свойства и функции, которые позволяют вам сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...