如何在 Silverlight RichTextBox 中保留选项卡?

发布于 2024-08-31 06:53:08 字数 147 浏览 2 评论 0原文

我已经覆盖了按键处理事件,并在用户按下 RichTextBox 的 Tab 键时插入选项卡。

当我从该 RichTextBox 保存 XAML 并重新加载它时,所有选项卡现在都是空格。

有谁知道我可以做什么来让 RichTextBox 显示选项卡?

I've overridden the key-handling events and am inserting tabs when a user presses the tab key for a RichTextBox.

When I save the XAML from that RichTextBox and reload it, all of the tabs are now spaces.

Does anyone know what I can do to get the RichTextBox to display tabs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过去的过去 2024-09-07 06:53:08

我通过临时放置一个占位符解决了这个问题。

private const string TAB = "    ";
private const string TAB_PLACEHOLDER = "===TAB===";

我使用占位符临时替换所有制表符,然后一旦它们位于 RichTextBox 中,我就用制表符替换所有占位符。

textBox1.Text = richTextBox1.Xaml;
string xaml = richTextBox1.Xaml;

xaml = xaml.Replace(TAB, TAB_PLACEHOLDER);

richTextBox2.Xaml = xaml;

foreach (Block block in richTextBox2.Blocks)
{
    foreach (Inline inline in ((Paragraph)block).Inlines)
    {
        ((Run) inline).Text = ((Run) inline).Text.Replace(TAB_PLACEHOLDER, TAB);
    }
}

I got around this issue by putting a placeholder in temporarily.

private const string TAB = "    ";
private const string TAB_PLACEHOLDER = "===TAB===";

I used the placeholder to temporarily replace all of the tab characters and then once they were in the RichTextBox I replaced all of the placeholders with tabs.

textBox1.Text = richTextBox1.Xaml;
string xaml = richTextBox1.Xaml;

xaml = xaml.Replace(TAB, TAB_PLACEHOLDER);

richTextBox2.Xaml = xaml;

foreach (Block block in richTextBox2.Blocks)
{
    foreach (Inline inline in ((Paragraph)block).Inlines)
    {
        ((Run) inline).Text = ((Run) inline).Text.Replace(TAB_PLACEHOLDER, TAB);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文