我们有一个RichTextBox WPF控件,由于我们控制了布局,我们根本无法允许任何丰富的内容......
因此,我们需要从剪贴板中删除除文本之外的所有数据。例如,如果某人正在尝试复制/粘贴从表格中直接从Microsoft Word中说出文本,则RichTextBox还会考虑此文本最初来自表格,2。粗体和3.加下划线,并创建全部各种内联内容,以适应文本的所有这些属性......
在我们的案例中,这不是合适的行为,因为它可能会破坏我们的内联布局..我们只想要干净的文字......
最简单的方法是在预览粘贴命令中:
Clipboard.SetText(Clipboard.GetText());
并完成它...但你猜对了..部分信任不允许剪贴板操作......
我们还尝试了一个肮脏讨厌的黑客,使用此链接建议的隐藏文本框:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5b5bcd71-2eea-4762-bf65-84176c919fce/
像这样:
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 /部分信任中检索剪贴板的内容?
由于
编辑:正如Nir指出的那样......我知道从剪贴板中变异数据并不是很好..但是如果有人能指出我怎么样,我的问题将会得到同样的回答仅部分信任检索剪贴板中的文本:)..
答案 0 :(得分:0)
根本不可能。
最后,我们使用切换按钮,您可以切换到文本框,将其粘贴到那里,然后切换回我们的控件。令人讨厌,但它确实有效。
答案 1 :(得分:-1)
http://msdn.microsoft.com/en-us/library/aa970910.aspx仅在部分信任中说“明文和墨迹剪贴板支持”。 “富文本格式剪贴板”
需要完全信任