簡體   English   中英

C# RichEditBox - 不采用setText字體系列

[英]C# RichEditBox - setText font family is not adopted

我有以下示例,其中我使用Document.SetText在 UWP RichEditBox中設置 RTF 文本。 我的示例 RTF 是從這個問題中復制的(沒有幫助),但我也嘗試過使用Document.GetText中的 RTF 文本。 問題是,RTF 文本的字體系列被忽略了。

// Main.xaml
<Grid>
    <RichEditBox x:Name="Editor" />
</Grid>


// Main.xaml.cs
public sealed partial class MainPage : Page {
        public MainPage() {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e) {
            string myRtfString = @"{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1040
                                     {\fonttbl{\f0\fnil\fcharset0 Segoe UI;}
                                     {\f1\fnil\fcharset0 Brush Script MT;}
                                     {\f2\fnil\fcharset0 Impact;}
                                     {\f3\fnil Segoe UI;}}
                                     {\colortbl ;\red9\green105\blue192;\red0\green0\blue0;\red76\green152\blue25;\red208\green52\blue56;}
                                     {\*\generator Riched20 10.0.14393}\viewkind4\uc1 
                                     \pard\ltrpar\tx720\cf1\b\i\f0\fs23 Test\cf2\b0\i0\par
                                     \pard\ltrpar\li320\qc\tx720\cf3\strike\f1\fs40 Some color\cf2\strike0\f0\fs23\par
                                     \pard\ltrpar\tx720\cf4\f2 Hello!\cf2\f0\par
                                     \f3\par
                                     \f0\lang1033\par   
                                     \f3\par
                                     \par
                                     \pard\ltrpar\tx720\fs23\par
                                     }";

            Editor.Document.SetText(Windows.UI.Text.TextSetOptions.FormatRtf, myRtfString);
            Editor.Document.ApplyDisplayUpdates();
        }
}

它看起來如何: 在此處輸入圖像描述

它實際上應該如何看(從上面鏈接的問題中復制):

在此處輸入圖像描述

您不能使用 OnNavigatedTo 進行元素操作或 state 更改目標頁面上的控件,RichEditBox 尚未完全加載。 您可以訂閱當前頁面的Loaded事件,然后在其中設置 rft 字符串。

public MainPage()
{
    this.InitializeComponent();

    this.Loaded += Page_Loaded;
}

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    string myRtfString = @"{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1040
                                 {\fonttbl{\f0\fnil\fcharset0 Segoe UI;}
                                 {\f1\fnil\fcharset0 Brush Script MT;}
                                 {\f2\fnil\fcharset0 Impact;}
                                 {\f3\fnil Segoe UI;}}
                                 {\colortbl ;\red9\green105\blue192;\red0\green0\blue0;\red76\green152\blue25;\red208\green52\blue56;}
                                 {\*\generator Riched20 10.0.14393}\viewkind4\uc1 
                                 \pard\ltrpar\tx720\cf1\b\i\f0\fs23 Test\cf2\b0\i0\par
                                 \pard\ltrpar\li320\qc\tx720\cf3\strike\f1\fs40 Some color\cf2\strike0\f0\fs23\par
                                 \pard\ltrpar\tx720\cf4\f2 Hello!\cf2\f0\par
                                 \f3\par
                                 \f0\lang1033\par   
                                 \f3\par
                                 \par
                                 \pard\ltrpar\tx720\fs23\par
                                 }";

    Editor.Document.SetText(Windows.UI.Text.TextSetOptions.FormatRtf, myRtfString);
    Editor.Document.ApplyDisplayUpdates();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM