无法在 Windows 8.1 应用程序中获取剪贴板的内容
Can't get contents of the Clipboard in Windows 8.1 app
我在 Windows 8.1 应用程序中使用 剪贴板 class 来获取剪贴板随着它的变化。但是当我尝试将内容写入文本框时,我得到了这个:
剪贴板现在包含:System.__ComObject
这是我的代码:
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
Clipboard.ContentChanged += Clipboard_ContentChanged;
}
private void Clipboard_ContentChanged(object sender, object e)
{
textBox.Text = "clipboard now contains: " + Clipboard.GetContent().GetTextAsync();
}
我想使用 GetContent().GetTextAsync() 方法获取复制到剪贴板的字符串,但我不知道为什么 returns System.__ComObject。
提前谢谢你
GetTextAsync() 是一种异步方法,因此必须等待。如果你不 await 它,你只会得到一个 IAsyncOperation 的实例,因为那是它的 return 类型。
您需要阅读 async/await 以了解详细信息(this 是一个很好的起点),但要回答您的问题,请将您的事件处理程序更改为以下内容:
private async void Clipboard_ContentChanged(object sender, object e)
{
textBox.Text = "clipboard now contains: " + await Clipboard.GetContent().GetTextAsync();
}
注意方法声明中的 async 关键字,表示这是一个异步方法(您只能在异步方法中等待异步方法),而 await 关键字,简单地说,将 IAsyncOperation 转换为字符串值当操作完成时。
我在 Windows 8.1 应用程序中使用 剪贴板 class 来获取剪贴板随着它的变化。但是当我尝试将内容写入文本框时,我得到了这个:
剪贴板现在包含:System.__ComObject
这是我的代码:
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
Clipboard.ContentChanged += Clipboard_ContentChanged;
}
private void Clipboard_ContentChanged(object sender, object e)
{
textBox.Text = "clipboard now contains: " + Clipboard.GetContent().GetTextAsync();
}
我想使用 GetContent().GetTextAsync() 方法获取复制到剪贴板的字符串,但我不知道为什么 returns System.__ComObject。 提前谢谢你
GetTextAsync() 是一种异步方法,因此必须等待。如果你不 await 它,你只会得到一个 IAsyncOperation 的实例,因为那是它的 return 类型。
您需要阅读 async/await 以了解详细信息(this 是一个很好的起点),但要回答您的问题,请将您的事件处理程序更改为以下内容:
private async void Clipboard_ContentChanged(object sender, object e)
{
textBox.Text = "clipboard now contains: " + await Clipboard.GetContent().GetTextAsync();
}
注意方法声明中的 async 关键字,表示这是一个异步方法(您只能在异步方法中等待异步方法),而 await 关键字,简单地说,将 IAsyncOperation 转换为字符串值当操作完成时。