TextBlock отказывается ~ 70% времени сделать гиперссылку - PullRequest
1 голос
/ 20 марта 2012

Действительно очень странная проблема, короче говоря, я делаю foreach для каждого слова в текстовом блоке, если это слово начинается, например, с "@", я хочу сделать из него гиперссылку имени пользователя. Однако примерно в 70% случаев он отлично заменяет текст, но не становится гиперссылкой.

Неполный код:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    var kaas = Tweet.Split(' ');
    foreach (string a in kaas)
    {
        if (a.StartsWith("@"))
        {
            Hyperlink uname = new Hyperlink();
            uname.NavigateUri = new Uri("http://twitter.com/" + "xarinatan");
            uname.RequestNavigate += new RequestNavigateEventHandler(Hyperlink_RequestNavigateEvent);
            uname.Inlines.Add("ASDAS");
            TweetBlock.Inlines.Add(uname);
            //TweetBlock.Inlines.Add(Username(a));
            TweetBlock.Inlines.Add(" ");
        }
    }
}

Выше код превращает все экземпляры, которые начинаются с "@", в "ASDAS", но в большинстве случаев не удается правильно преобразовать его в гиперссылку, ОДНАКО он конвертирует ИНОГДА. Это полностью вне меня, как это работает только иногда, а не все время или не работает вообще.

Все предложения приветствуются!

edit: чтобы уточнить, он всегда заменяет текст на «ASDAS», но в 70% случаев он не становится гиперссылкой.

1 Ответ

0 голосов
/ 20 марта 2012

Мой друг нашел ответ.Каким-то образом добавление строк в виде строки вызывает спорадическое поведение, их нужно добавлять как «Выполнить».

Исправление можно найти здесь: https://github.com/zahndy/o3o/commit/68b50f8c0ea106bcc709d3f69658b28da9c8a9d4#diff-3

Спасибо всем за предложения!

...