Sdílet prostřednictvím


Schránka

Browse sample. Procházení ukázky

Tento článek popisuje, jak můžete použít rozhraní .NET Multi-Platform App UI (.NET MAUI). IClipboard Pomocí tohoto rozhraní můžete kopírovat a vkládat text do a ze schránky systému.

Výchozí implementace IClipboard rozhraní je k dispozici prostřednictvím Clipboard.Default vlastnosti. Rozhraní IClipboard i Clipboard třída jsou obsaženy v Microsoft.Maui.ApplicationModel.DataTransfer oboru názvů.

Tip

Přístup ke schránce musí být proveden v hlavním vlákně uživatelského rozhraní. Další informace o vyvolání metod v hlavním vlákně uživatelského rozhraní naleznete v tématu MainThread.

Použití schránky

Přístup ke schránce je omezený na řetězcová data. Můžete zkontrolovat, jestli schránka obsahuje data, nastavit nebo vymazat data a číst data. Událost ClipboardContentChanged se vyvolá při každé změně dat schránky.

Následující příklad kódu ukazuje použití tlačítka k nastavení dat schránky:

private async void SetClipboardButton_Clicked(object sender, EventArgs e) =>
    await Clipboard.Default.SetTextAsync("This text was highlighted in the UI.");

Následující příklad kódu ukazuje použití tlačítka ke čtení dat schránky. Kód nejprve zkontroluje, jestli schránka obsahuje data, přečte tato data a pak pomocí null hodnoty vymaže SetTextAsync schránku:

private async void ReadClipboardButton_Clicked(object sender, EventArgs e)
{
    if (Clipboard.Default.HasText)
    {
        ClipboardOutputLabel.Text = await Clipboard.Default.GetTextAsync();
        await ClearClipboard();
    }
    else
        ClipboardOutputLabel.Text = "Clipboard is empty";
}

private async Task ClearClipboard() =>
    await Clipboard.Default.SetTextAsync(null);

Vymazání schránky

Schránku můžete vymazat předáním nullSetTextAsync metody, jak ukazuje následující příklad kódu:

private async Task ClearClipboard() =>
    await Clipboard.Default.SetTextAsync(null);

Detekce změn schránky

Rozhraní IClipboard poskytuje ClipboardContentChanged událost. Při vyvolání této události se obsah schránky změnil. Následující příklad kódu přidá obslužnou rutinu události při načtení stránky obsahu:

private void ContentPage_Loaded(object sender, EventArgs e)
{
    Clipboard.Default.ClipboardContentChanged += Clipboard_ClipboardContentChanged;
}

private async void Clipboard_ClipboardContentChanged(object sender, EventArgs e)
{
    ClipboardOutputLabel.Text = await Clipboard.Default.GetTextAsync();
}