Буфер обмена
В этой статье описывается, как использовать интерфейс многоплатформенного приложения .NET (.NET MAUI). IClipboard С помощью этого интерфейса можно скопировать и вставить текст в системный буфер обмена и из нее.
Реализация интерфейса по умолчанию IClipboard
доступна через Clipboard.Default свойство. Интерфейс IClipboard
и Clipboard
класс содержатся в Microsoft.Maui.ApplicationModel.DataTransfer
пространстве имен.
Совет
Доступ к буферу обмена должен выполняться в основном потоке пользовательского интерфейса. Дополнительные сведения о том, как вызывать методы в основном потоке пользовательского интерфейса, см. в разделе MainThread.
Использование Clipboard
Доступ к буферу обмена ограничен строковыми данными. Вы можете проверка, если буфер обмена содержит данные, задает или очищает данные и считывает данные. Событие 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();
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по