通过


TextToolbar (存档)

警告

本文档已存档,组件在当前版本的 Windows 社区工具包中不可用。

虽然目前没有将此组件移植到 8.x 的计划,但欢迎社区表达兴趣或参与将其包含。 如果社区兴趣足够高,这个控件可以移植。

更多信息,请参阅:

原始文档如下。


TextToolbar 控件是 RichEditBox 控件的通用文本编辑控件。 它可以使用 Markdown 格式、RTF 格式进行格式化,还支持实现自定义格式器,这样您可以使用工具栏编辑任何其他格式的文本。 它支持键盘快捷键、按钮切换,以指示是否启用了格式,例如在富文本格式中将光标置于粗体文本上。 还可以从任何格式中删除默认按钮,或者将自定义按钮添加到任何格式,而无需对整个控件进行重排,或者继承格式化程序类。

Syntax

<controls:TextToolbar x:Name="Toolbar" Editor="{x:Bind Editor}" Format="MarkDown"/>
<RichEditBox x:Name="Editor" PlaceholderText="Enter Text Here" />

示例输出

TextToolbar 示例

属性

资产 类型 Description
按钮修改 默认按钮修改列表 获取或设置要从 UI 中删除的默认按钮的列表
ControlKeyDown 布尔 获取一个值,该值指示 Ctrl 键是否按下
CustomButtons(自定义按钮) ButtonMap 获取或设置要添加到默认按钮集的按钮列表
DefaultButtons ButtonMap 获取此格式的默认按钮
Editor RichEditBox (富编辑框) 获取或设置需要附加的 RichEditBox,这是实现任何格式功能所必需的。
Format 格式 获取或设置要使用的格式化程序以及要提供的按钮
Formatter 格式器 获取或设置格式化程序,该格式化程序用于设置按钮中的文本格式
LastKeyPress VirtualKey 获取使用编辑器按下的最后一个键
ShiftKeyDown 布尔 判断 Shift 键是否按下
UseURIChecker 布尔 获取或设置一个值,该值指示是否为链接创建者启用 URI 检查器。 这允许在创建链接之前验证绝对 URI

创建一个自定义格式化程序

若要创建自己的格式化程序,需要从 Formatter 类继承。 然后在 TextToolbar 上,将 Format 属性设置为 Custom 该属性,然后使用实例化的自定义格式化程序设置 Formatter 该属性。

创建类时,需要重写 DefaultButtons 属性。 这样,就可以定义希望格式化工具在 工具栏上显示的按钮。

如果要使用通用按钮模板,例如粗体、斜体等。可以通过实例化 CommonButtons Formatter 类中的实例来获取这些实例,但是,需要实现 ButtonActions 类,并在 Formatter ButtonActions 的属性中实例化该实例,或替换 Action/Shift Action 所使用的每个按钮上的属性。

关于如何创建 Formatter,请参阅 MarkDownFormatter 类以获取参考信息:MarkDownFormatter 代码

请参阅来自示例 App 的示例格式化程序类:SampleFormatter 代码

可用的 CommonButton:CommonButton 定义

例子

添加/删除按钮的示例

<controls:TextToolbar x:Name="Toolbar" Editor="{x:Bind Editor}">
    <controls:TextToolbar.ButtonModifications>
        <buttons:DefaultButton Type="Headers" IsVisible="False"/>
    </controls:TextToolbar.ButtonModifications>
    <controls:TextToolbar.CustomButtons>
        <buttons:ToolbarButton
            Name="CustomButton"
            Icon="ReportHacked"
            Position="1"
            Activation="{x:Bind System.Action<ToolbarButton>}"
            ShortcutKey="H" />
        <buttons:ToolbarSeparator Position="2" />
    </controls:TextToolbar.CustomButtons>
</controls:TextToolbar>
<RichEditBox x:Name="Editor" PlaceholderText="Enter Text Here" />
var button = Toolbar.GetDefaultButton(ButtonType.Headers);
button.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
Toolbar.CustomButtons.Add(new ToolbarButton
{
    Name = "CustomButton",
    Icon = new SymbolIcon(Symbol.ReportHacked),
    Position = 1,
    Activation = button => System.Diagnostics.Debug.WriteLine($"{button.Name} Activated"),
    ShortcutKey = Windows.System.VirtualKey.H
});
Toolbar.CustomButtons.Add(new ToolbarSeparator { Position = 2 });
Dim button = Toolbar.GetDefaultButton(ButtonType.Headers)
button.Visibility = Windows.UI.Xaml.Visibility.Collapsed
Toolbar.CustomButtons.Add(New ToolbarButton With {
                            .Name = "CustomButton",
                            .Icon = New SymbolIcon(Symbol.ReportHacked),
                            .Position = 1,
                            .Activation = Sub(btn) Debug.WriteLine($"{btn.Name} Activated"),
                            .ShortcutKey = Windows.System.VirtualKey.H})
Toolbar.CustomButtons.Add(New ToolbarSeparator With {.Position = 2})

示例项目

TextToolbar 示例页源。 你可以在 Windows Community Toolkit 示例应用看到实际效果

要求

设备系列 通用、10.0.16299.0 或更高版本
Namespace Microsoft.Toolkit.Uwp.UI.Controls
NuGet 包 Microsoft.Toolkit.Uwp.UI.Controls

API