7

在 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 中复制某事并再次覆盖我的文本。

4

2 回答 2

7

清除剪贴板是多余的,因为 SetText 会自动为您执行此操作。

这是我通常使用的:

Clipboard.SetText(msg, TextDataFormat.Text);

或者

Clipboard.SetText(msg,TextDataFormat.UnicodeText);

参考在这里

于 2013-10-21T09:28:30.310 回答
4
    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);
    }
于 2014-03-28T15:51:03.327 回答