RichTextBox for UWP
AppBar の使用
RichTextBox の使い方 > メニューとコマンド > AppBar の使用

C1.Xaml.RichTextBox.AppBar ライブラリには、簡潔なコマンドバーの作成に使用できるツールが組み込まれています。組み込みツールは、Bold、Italic、Underline, Undo、Redo、Increase Font Size、Decrease Font Size、Center Align、Right Align、Left Align、Justify の各コマンドをサポートします。アプリケーションバーコントロールは不可視ですが、アセンブリに含まれる C1 ツール をアプリケーションバーに追加できます。

AppBar アセンブリをアプリケーションに実装する完全な例については、チュートリアル「AppBar アプリケーションの作成」を参照してください。

AppBar アセンブリに含まれる C1 ツールを使用するには、マークアップを次のようにする必要があります。これを終了タグ </Grid> の後に配置します。

XAML
コードのコピー
<Page.BottomAppBar>
<AppBar x:Name="topAppBar" Padding="10,0,10,0" >
</AppBar>
</Page.TopAppBar>

AppBar がページの先頭に表示されるように設定することもできます。それには、次のマークアップを使用します。

XAML
コードのコピー
<Page.TopAppBar>
 <AppBar x:Name="bottomAppBar" Padding="10,0,10,0" >
 </AppBar>
</Page.BottomAppBar>

使用する C1 ツールは、<AppBar> </AppBar> タグの間の StackPanel コントロール内に配置します。

XAML
コードのコピー
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
   <RichTextBox:C1BoldTool x:Name="btnBold" Style="{StaticResource BoldAppBarButtonStyle}" />
   <RichTextBox:C1ItalicTool x:Name="btnItalic" Style="{StaticResource ItalicAppBarButtonStyle}" />
   <RichTextBox:C1UnderlineTool x:Name="btnUnderline" Style="{StaticResource UnderlineAppBarButtonStyle}" />
</StackPanel>

汎用 Button コントロールを使用するには、次のコードを追加します。

XAML
コードのコピー
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
   <Button x:Name="btnCopy" Style="{StaticResource CopyAppBarButtonStyle}" Click="btnCopy_Click"/>
   <Button x:Name="btnPaste" Style="{StaticResource PasteAppBarButtonStyle}" Click="btnPaste_Click"/>
   <Button x:Name="btnCut" Style="{StaticResource CutAppBarButtonStyle}" Click="btnCut_Click"/>
</StackPanel>

これらの汎用 Button コントロールにはクリックイベントがあり、次のコードを追加して、クリックイベントを処理する必要があります。

C#
コードのコピー
#region Clipboard
        private void btnCopy_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            rtb.ClipboardCopy();
        } 

        private void btnCut_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (rtb.IsReadOnly)
                rtb.ClipboardCopy();
            else
                rtb.ClipboardCut();
        } 

        private void btnPaste_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (!rtb.IsReadOnly)
            {
                rtb.ClipboardPaste();
            }
        }
        #endregion