次の方法で共有


マークダウン コンテンツを表示する

へ: コマンドの結果

ここまでは、 ListPage でコマンドの一覧を表示する方法のみを示しました。 ただし、マークダウンなど、拡張機能にリッチ コンテンツを表示することもできます。 これは、ドキュメントを表示したり、ドキュメントのプレビューを表示したりするのに役立ちます。

Markdown コンテンツの操作

IContentPage (およびそのツールキットの実装 である ContentPage) は、すべての種類のリッチ コンテンツをコマンド パレットに表示するためのベースです。 Markdown コンテンツを表示するには、 MarkdownContent クラスを使用します。

簡単な例として、次のページを作成できます。

前のセクションで作業している場合は、以下のコードを MarkdownPage から <ExtensionName>Pageに変更します。

public class MarkdownPage : ContentPage
{
    public MarkdownPage()
    {
        Icon = IconHelpers.FromRelativePath("Assets\\StoreLogo.png");
        Title = "Markdown page";
    }

    public override IContent[] GetContent()
    {
        return [
            new MarkdownContent("# Hello, world!\n This is a **markdown** page."),
        ];
    }
}

この例では、単純なマークダウン文字列を表示する新しい MarkdownPage が作成されます。 MarkdownContent クラスは、マークダウン コンテンツの文字列を受け取り、コマンド パレットにレンダリングします。

ページに複数のコンテンツ ブロックを追加することもできます。 たとえば、マークダウン コンテンツの 2 つのブロックを追加できます。

public override IContent[] GetContent()
{
    return [
        new MarkdownContent("# Hello, world!\n This is a **markdown** page."),
        new MarkdownContent("## Second block\n This is another block of content."),
    ];
}

これにより、1 つのページでさまざまな種類のコンテンツを混在させることができます。

コマンドの追加

ContentPage にコマンドを追加することもできます。 これにより、コンテンツのコンテキストでユーザーが呼び出すコマンドを追加できます。 たとえば、ドキュメントを表示するページがある場合は、エクスプローラーでドキュメントを開くコマンドを追加できます。


public class MarkdownExamplePage : ContentPage
{
    public MarkdownExamplePage()
    {
        Icon = new("\uE8A5"); // Document icon
        Title = "Markdown page";
        Name = "Preview file";

        Commands = [
            new CommandContextItem(new OpenUrlCommand("C:\\Path\\to\\file.txt")) { Title = "Open in File Explorer" },
        ];
    }
    public override IContent[] GetContent()
    {
        return [
            new MarkdownContent("# Hello, world!\n This is a **markdown** document.\nI live at `C:\\Path\\to\\file.txt`"),
        ];
    }
}

次へ: フォームを使用してユーザー入力を取得する