Поделиться через


Отображение содержимого markdown

Предыдущий: Результаты команды

До сих пор мы показали, как отобразить список команд в ListPage. Однако вы также можете отображать в расширении форматированный контент, например markdown. Это может быть полезно для отображения документации или предварительного просмотра документа.

Работа с содержимым 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 , отображающая простую строку markdown. Класс MarkdownContent принимает строку содержимого Markdown и отображает его в палитре команд.

Вы также можете добавить несколько блоков содержимого на страницу. Например, можно добавить два блока контента в формате Markdown.

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."),
    ];
}

Это позволяет сочетать различные типы содержимого на одной странице.

Добавление команд

Вы также можете добавить команды в 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`"),
        ];
    }
}

Далее: получение входных данных пользователей с помощью форм