[英]C# WPF Clipboard.SetText() not working properly
我在 WPF 应用程序中使用剪贴板时遇到问题:我的代码如下所示:
var msg = "sample message for the clipboard";
Clipboard.Clear();
Clipboard.SetText(msg);
但只有 "\\t\\t\\t\\r\\n" 存储在我的剪贴板中。 这是在我的应用程序中使用剪贴板并被调用的唯一代码。
*编辑:发现错误。 我将上面的代码用于 DataGridRow 中的复制粘贴操作。 这适用于:
private void OnCopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
var msg = "sample"
e.ClipboardRowContent.Clear();
e.ClipboardRowContent.Add(new DataGridClipboardCellContent(e.Item, (sender as DataGrid).Columns[0], msg));
}
我猜问题是它在我的 Clipboard.SetText(..) 之后自动尝试从我的 DataGrid 中复制某物并再次覆盖我的文本。
清除剪贴板是多余的,因为 SetText 会自动为您执行此操作。
这是我通常使用的:
Clipboard.SetText(msg, TextDataFormat.Text);
或
Clipboard.SetText(msg,TextDataFormat.UnicodeText);
参考在这里
protected void clipboardSetText(string inTextToCopy)
{
var clipboardThread = new Thread(() => clipBoardThreadWorker(inTextToCopy));
clipboardThread.SetApartmentState(ApartmentState.STA);
clipboardThread.IsBackground = false;
clipboardThread.Start();
}
private void clipBoardThreadWorker(string inTextToCopy)
{
System.Windows.Clipboard.SetText(inTextToCopy);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.