2015-01-10 5 views
0

Добрый день! Позвольте мне предисловие, что я являюсь ежедневным пользователем этого сайта и относительно новичок в программировании C# и WP8. У меня есть RichTextBox, который я пытаюсь представить из API. В сущности, я пытаюсь найти строку для {value} (они легко включены в {}) и заменяют их правильным изображением. Будучи новым, я создал отдельное место, где я вводил текст (упрощенная версия), и я пытаюсь использовать его для одного элемента, прежде чем начинать огромную работу. Вот что мой код выглядит как ATM:WP8.1 RichTextBox, отображающий пустой экран

XAML для RTB:

<RichTextBox x:Name="Rtb_cardText" Margin="0,310,0,229" HorizontalAlignment="Stretch" VerticalAlignment="Top"/> 

код позади в MainPage:

private void Prime() 
     { 
      string example = "blah blah blah {T} blah blah blah"; 
      Paragraph old = new Paragraph(); 
      Paragraph newer = new Paragraph(); 

      string[] holder = example.Split(new[] { '{', '}' }); 

      for (int i = 0; i < holder.Count(); i++) 
      { 

       if (holder[i] == "t" || holder[i] == "T") 
       { 

        Image symbol = new Image(); 
        symbol.Source = new BitmapImage(new Uri("/Images/t.png", UriKind.Relative)); 
        symbol.Height = Width = 25; 
        InlineUIContainer symbolUI = new InlineUIContainer(); 
        symbolUI.Child = symbol; 
        old.Inlines.Add(symbolUI); 

       } 

       else 
       { 
        Run txt = new Run(); 
        txt.Text = holder[i]; 
        old.Inlines.Add(txt); 
       } 

       newer = old; 
       Rtb_cardText.Blocks.Remove(old); 
       Rtb_cardText.Blocks.Add(newer); 
      } 

     } 

Так что мой RTB должен иметь "бла-бла-бла Image бла-бла-бла" ,

Все, что можно было ожидать. Я не получаю никаких ошибок компиляции, и я могу запустить приложение, но как только метод завершится, я получаю доступ к тому, что кажется экраном ввода текста. Я могу поднять клавиатуру и попытаться ввести что-то, но ничего не появляется. Кнопка «Назад» приводит меня в главное меню Windows виртуального телефона.

Вещи я пытался это IsEnabled и IsReadOnly

Любые предложения? Может, мне здесь что-то не хватает. Мне кажется, что приложение пытается разрешить ввод текста из RTB, но я не совсем уверен. Извините, если я не имею никакого смысла, сообщите мне, нужно ли мне что-то прояснить. Спасибо за ваши старания! :)

Обновление - Прокомментировал часть изображения и if/else, и просто он дал дамп, не проверяя изображение, и мой текст приходит, хотя и отлично, без изображения. Так он показывает, как «бла-бла-бла Т бла бла бла»

Таким образом, код, который работает без изображения:

private void Prime() 
      { 
       string example = "blah blah blah {T} blah blah blah"; 
       Paragraph old = new Paragraph(); 
       Paragraph newer = new Paragraph(); 

       string[] holder = example.Split(new[] { '{', '}' }); 

       for (int i = 0; i < holder.Count(); i++) 
       { 

        if (holder[i] == "t" || holder[i] == "T") 
        { 

         //Image symbol = new Image(); 
         //symbol.Source = new BitmapImage(new Uri("/Images/t.png", UriKind.Relative)); 
         //symbol.Height = Width = 25; 
         //InlineUIContainer symbolUI = new InlineUIContainer(); 
         //symbolUI.Child = symbol; 
         //old.Inlines.Add(symbolUI); 

        //} 

        //else 
        //{ 
         Run txt = new Run(); 
         txt.Text = holder[i]; 
         old.Inlines.Add(txt); 
        //} 

        newer = old; 
        Rtb_cardText.Blocks.Remove(old); 
        Rtb_cardText.Blocks.Add(newer); 
       } 

      } 

ответ

0
symbol.Height = Width = 25; 

Был вопрос, который я был запущен в. Я пытался установить оба значения сразу.

symbol.Height = 25; 
symbol.Width = 25; 

Это заставляет все работать как шарм! Поскольку я прокомментировал часть изображения, и это сработало, я подумал, что это должно быть там, и это было! :)

Смежные вопросы