【问题标题】:WP8.1 RichTextBox displaying blank screenWP8.1 RichTextBox 显示空白屏幕
【发布时间】:2015-01-12 09:38:05
【问题描述】:

下午好! 让我先说一下,我是这个网站的日常用户,对 c# 和 WP8 编程还比较陌生。我有一个 RichTextBox,我试图从 API 中放入一些想象。本质上,我正在尝试搜索 {value} 的字符串(为方便起见,它们被包含在 {} 中)并用正确的图像替换它们。作为新人,我创建了一个独立的地方,我在其中输入所述文本(简化版),并在开始巨大之前尝试将其用于一个项目。这是我的代码在 ATM 上的样子:

实时出价的 XAML:

<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 应该有“blah blah blah Image blah blah blah”。

一切都在意料之中。我没有收到任何编译错误,我可以运行该应用程序,但是一旦方法完成,我就会被带到一个似乎是文本输入屏幕的地方。我可以调出键盘并尝试输入一些内容,但什么也没有出现。后退按钮将我带到虚拟电话的 Windows 主菜单。

我尝试过的是IsEnabledIsReadOnly

有什么建议吗?也许我在这里遗漏了一些简单的东西。在我看来,该应用程序似乎正在尝试允许来自 RTB 的文本输入,但我并不完全确定。抱歉,如果我没有任何意义,请告诉我是否需要清除某些内容。感谢您的努力! :)

更新 - 注释掉了图像部分和 if/else,只是在没有检查图像的情况下将其转储,而我的文本在没有图像的情况下仍然很好。所以它显示为“blah blah blah T blah blah blah”

所以没有图像的代码是:

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);
                }

            }

【问题讨论】:

    标签: c# silverlight windows-phone-8 richtextbox


    【解决方案1】:
    symbol.Height = Width = 25;
    

    是我遇到的问题。我试图同时设置这两个值。

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

    这让一切都像魅力一样运作!由于我注释掉了图像部分并且它起作用了,所以我认为它必须在那里,它就是! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2015-10-03
      • 2020-07-17
      • 2013-08-25
      • 1970-01-01
      相关资源
      最近更新 更多