我在Windows 8.1应用中使用 剪贴板 类来获取剪贴板内容的变化。但是当我尝试将内容写入文本框时,我得到了这个:
剪贴板现在包含: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()方法复制到剪贴板的字符串,但我不知道为什么它会返回 System .__ ComObject。 提前谢谢
答案 0 :(得分:3)
GetTextAsync()是一种异步方法,因此必须等待。如果您没有等待它,您将只获得IAsyncOperation的实例,因为这是它的返回类型。
您需要阅读async / await以了解详细信息(this是一个很好的起点),但要回答您的问题,请将您的事件处理程序更改为以下内容:
private async void Clipboard_ContentChanged(object sender, object e)
{
textBox.Text = "clipboard now contains: " + await Clipboard.GetContent().GetTextAsync();
}
请注意方法声明中的async关键字,表示这是一个异步方法(您只能等待异步方法中的异步方法),而await关键字只需将IAsyncOperation转换为字符串值即可。操作完成。