2013-10-21 121 views
5

我已經在使用WPF應用程序剪貼板中遇到一個問題: 我的代碼如下所示:C#WPF Clipboard.SetText()無法正常工作

 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的複製,並再次改寫我的文字。

回答

5

清除剪貼板是多餘的,因爲SetText自動爲您做。

這是我通常使用:

Clipboard.SetText(msg, TextDataFormat.Text);

Clipboard.SetText(msg,TextDataFormat.UnicodeText);

參考是here

3
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); 
    }