forked from xamarin/Essentials
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathClipboard.uwp.cs
38 lines (31 loc) · 1.28 KB
/
Clipboard.uwp.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.DataTransfer;
using WindowsClipboard = Windows.ApplicationModel.DataTransfer.Clipboard;
namespace Xamarin.Essentials
{
public static partial class Clipboard
{
static Task PlatformSetTextAsync(string text)
{
var dataPackage = new DataPackage();
dataPackage.SetText(text);
WindowsClipboard.SetContent(dataPackage);
return Task.CompletedTask;
}
static bool PlatformHasText
=> WindowsClipboard.GetContent().Contains(StandardDataFormats.Text);
static Task<string> PlatformGetTextAsync()
{
var clipboardContent = WindowsClipboard.GetContent();
return clipboardContent.Contains(StandardDataFormats.Text)
? clipboardContent.GetTextAsync().AsTask()
: Task.FromResult<string>(null);
}
static void StartClipboardListeners()
=> WindowsClipboard.ContentChanged += ClipboardChangedEventListener;
static void StopClipboardListeners()
=> WindowsClipboard.ContentChanged -= ClipboardChangedEventListener;
static void ClipboardChangedEventListener(object sender, object val) => ClipboardChangedInternal();
}
}