WP8.1 RichTextBox 显示黑屏
WP8.1 RichTextBox displaying blank screen
下午好!
先声明一下,我是该站点的日常用户,对 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"。
一切正常。我没有遇到任何编译错误,我可以 运行 应用程序,但是一旦方法完成,我就会被带到一个似乎是文本输入屏幕的地方。我可以调出键盘并尝试输入内容,但没有显示任何内容。后退按钮将我带到虚拟 phone 的 Windows 主菜单。
我试过的有IsEnabled
和IsReadOnly
有什么建议吗?也许我在这里遗漏了一些简单的东西。在我看来,该应用程序似乎正在尝试允许来自 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);
}
}
symbol.Height = Width = 25;
是我 运行 遇到的问题。我试图同时设置这两个值。
symbol.Height = 25;
symbol.Width = 25;
这让一切都变得很有魅力!由于我注释掉了图像部分并且它起作用了,所以我认为它必须在那里,而且确实如此! :)
下午好! 先声明一下,我是该站点的日常用户,对 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"。
一切正常。我没有遇到任何编译错误,我可以 运行 应用程序,但是一旦方法完成,我就会被带到一个似乎是文本输入屏幕的地方。我可以调出键盘并尝试输入内容,但没有显示任何内容。后退按钮将我带到虚拟 phone 的 Windows 主菜单。
我试过的有IsEnabled
和IsReadOnly
有什么建议吗?也许我在这里遗漏了一些简单的东西。在我看来,该应用程序似乎正在尝试允许来自 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);
}
}
symbol.Height = Width = 25;
是我 运行 遇到的问题。我试图同时设置这两个值。
symbol.Height = 25;
symbol.Width = 25;
这让一切都变得很有魅力!由于我注释掉了图像部分并且它起作用了,所以我认为它必须在那里,而且确实如此! :)