WP8.1 富文本框显示空白屏幕

本文关键字:显示 空白 屏幕 文本 WP8 | 更新日期: 2023-09-27 18:37:07

下午好!首先,我是这个网站的日常用户,对 c# 和 WP8 编程相对较新。我有一个RichTextBox,我试图从API中放入一些想象。从本质上讲,我正在尝试在字符串中搜索{value}(为了方便起见,它们被封闭在{}中)并用正确的图像替换它们。作为新手,我创建了一个独立的文本,在其中输入所述文本(简化版本),并在开始之前尝试一个项目。这是我的代码看起来像 ATM:

适用于 RTB 的 XAML:

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

主页中的代码隐藏:

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应该有"等等

等等图像等等等等"。

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

我尝试过的事情是IsEnabledIsReadOnly

有什么建议吗?也许我在这里错过了一些简单的东西。对我来说,该应用程序似乎试图允许来自 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);
                }
            }

WP8.1 富文本框显示空白屏幕

symbol.Height = Width = 25;

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

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

这让一切都像魅力一样工作!由于我注释掉了图像部分并且它有效,我认为它必须在那里,而且确实如此!:)