![](/img/trans.png)
[英]UWP RichEditBox equivalent of GetCharIndexFromPosition
[英]Paragraph mark of UWP RichEditBox is not resized
使用此代碼( Editor.Document.Selection.CharacterFormat.Size = 20;
)我更改了Page_Loaded
句柄中 UWP RichEditBox
的字體大小。 當我開始輸入一些字符時,一切正常。 但是當我 select 的段落標記然后鍵入一些東西時,這個文本出現在錯誤的字體大小(10.5)。
我嘗試的是在設置字體大小之前擴大選擇范圍,但是在沒有文本的情況下似乎沒有段落標記。 但是當富編輯框為空並且我按下Shift+Right Arrow ⟶
(我通常會 select 段落標記)時,字體大小設置回 10.5。
是否有任何解決方法可以防止在任何情況下將字體大小設置回 10.5?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock x:Name="FontSizeBlock" Grid.Row="0"></TextBlock>
<RichEditBox x:Name="Editor" Grid.Row="1" SelectionChanged="HandleRichEditBox_SelectionChanged"></RichEditBox>
</Grid>
public sealed partial class MainPage : Page {
public MainPage() {
this.InitializeComponent();
this.Loaded += Page_Loaded;
}
private void Page_Loaded(object sender, RoutedEventArgs e) {
Editor.Document.Selection.SetRange(0, 1);
Editor.Document.Selection.CharacterFormat.Size = 20;
}
private void HandleRichEditBox_SelectionChanged(object sender, RoutedEventArgs e) {
FontSizeBlock.Text = "FontSize: " + Editor.Document.Selection.CharacterFormat.Size;
}
}
是否有任何解決方法可以防止在任何情況下將字體大小設置回 10.5?
根據您的要求,您可以在按Shift+Right
時將字體大小強制為 20。 請參考以下代碼。
private void HandleRichEditBox_SelectionChanged(object sender, RoutedEventArgs e)
{
FontSizeBlock.Text = "FontSize: " + Editor.Document.Selection.CharacterFormat.Size;
if (Editor.Document.Selection.CharacterFormat.Size == 10.5)
{
Editor.Document.Selection.SetRange(0, 1);
Editor.Document.Selection.CharacterFormat.Size = 20;
}
}
在進一步調查我的問題時,我注意到當RichEditBox
中已經有一些文本被刪除時,我的問題不會發生。
因此,我嘗試以編程方式 append、select 並刪除Page_Loaded
句柄中的字符,這種方法對我有用。
private void Page_Loaded(object sender, RoutedEventArgs e) {
// set any character
Editor.Document.SetText(Windows.UI.Text.TextSetOptions.None, "a");
Editor.Document.Selection.Expand(Windows.UI.Text.TextRangeUnit.Paragraph);
Editor.Document.Selection.CharacterFormat.Size = 20;
Editor.Document.SetText(Windows.UI.Text.TextSetOptions.None, "");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.