RichTextBox WPF コントロールがあり、レイアウトを制御しているため、リッチ コンテンツを許可することはできません...
そのため、クリップボードからテキスト以外のすべてのデータを削除する必要があります。たとえば、誰かが表のテキストを Microsoft Word から直接コピー/貼り付けしようとしている場合、RichTextBox は、このテキストが 1. 元は表からのものであり、2. 太字で 3. 下線が引かれていることも考慮して、すべて作成します。テキストのこれらすべてのプロパティに対応するインライン コンテンツの種類...
これは、インライン レイアウトを壊す可能性があるため、私たちのケースでは適切な動作ではありません..きれいなテキストが欲しいだけです...
最も簡単な方法は、プレビューの貼り付けコマンドです。
Clipboard.SetText(Clipboard.GetText());
そしてそれで終わります...しかし、あなたはそれを推測しました..部分信頼ではクリップボード操作は許可されていません...
また、次のリンクで提案されている非表示の Textbox を使用して、厄介なハックを試みました
。
そのようです:
public static class ClipboardManager
{
private static readonly TextBox textBox = new TextBox {AcceptsReturn = true, AcceptsTab = true};
public static void SetText(string text)
{
textBox.Text = text;
textBox.SelectAll();
textBox.Copy();
}
public static string GetText()
{
textBox.Clear();
textBox.Paste();
return textBox.Text;
}
}
そして、次のように呼び出します。
ClipboardManager.SetText(ClipboardManager.GetText());
これは完全信頼ではうまく機能しますが、何らかの理由で、TextBox の Copy メソッドと Paste メソッドの両方が部分信頼では機能しません...
WPF/partial trust でクリップボードのコンテンツを取得する方法を知っている人はいますか?
ありがとう
編集: Nirが指摘したように..クリップボードからデータを変更するのはあまり良くないことはわかっています..しかし、誰かが部分信頼でクリップボードからテキストのみを取得する方法を教えてくれれば、私の質問はまったく同じように答えられます. :)..