C# RichEditBox - 未采用 setText 字体系列
C# RichEditBox - setText font family is not adopted
我有以下示例,我在 UWP RichEditBox
和 Document.SetText
中设置了 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 进行目标页面上的元素操作或控件状态更改,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();
}
我有以下示例,我在 UWP RichEditBox
和 Document.SetText
中设置了 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 进行目标页面上的元素操作或控件状态更改,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();
}