다음을 통해 공유


클립보드

Browse sample. 샘플 찾아보기

이 문서에서는 .NET 다중 플랫폼 앱 UI(.NET MAUI) IClipboard 인터페이스를 사용하는 방법을 설명합니다. 이 인터페이스를 사용하면 시스템 클립보드에서 텍스트를 복사하여 붙여넣을 수 있습니다.

인터페이스의 IClipboard 기본 구현은 속성을 통해 Clipboard.Default 사용할 수 있습니다. IClipboard 인터페이스와 Clipboard 클래스는 모두 네임스페이스에 Microsoft.Maui.ApplicationModel.DataTransfer 포함됩니다.

클립보드에 대한 액세스는 기본 사용자 인터페이스 스레드에서 수행해야 합니다. 기본 사용자 인터페이스 스레드에서 메서드를 호출하는 방법에 대한 자세한 내용은 MainThread를 참조하세요.

클립보드 사용

클립보드에 대한 액세스는 문자열 데이터로 제한됩니다. 클립보드에 데이터가 포함되어 있는지 검사 데이터를 설정하거나 지우고 데이터를 읽을 수 있습니다. 이 ClipboardContentChanged 이벤트는 클립보드 데이터가 변경될 때마다 발생합니다.

다음 코드 예제에서는 단추를 사용하여 클립보드 데이터를 설정하는 방법을 보여 줍니다.

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

다음 코드 예제에서는 단추를 사용하여 클립보드 데이터를 읽는 방법을 보여 줍니다. 코드는 먼저 클립보드에 데이터가 있는지 검사 해당 데이터를 읽은 다음 값을 사용하여 null SetTextAsync 클립보드를 지웁니다.

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);

클립보드 지우기

다음 코드 예제와 같이 메서드에 전달 null SetTextAsync 하여 클립보드를 지울 수 있습니다.

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

클립보드 변경 내용 검색

인터페이스는 IClipboard 이벤트를 제공합니다 ClipboardContentChanged . 이 이벤트가 발생하면 클립보드 콘텐츠가 변경됩니다. 다음 코드 예제에서는 콘텐츠 페이지가 로드될 때 이벤트에 처리기를 추가합니다.

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();
}