2009-01-20 81 views
0

我们有一个RichTextBox WPF控件因为我们控制布局,我们根本不能让任何内容丰富......如何从剪贴板检索文本在部分信任

为此,我们需要剥去除文本的所有数据来自剪贴板。例如,如果有人试图复制/粘贴可以直接从Microsoft Word表中直接发表文本,那么RichTextBox也会考虑到该文本原来是1.表格,2.粗体和3.加下划线,并创建全部内联内容种类,以适应文本的所有这些属性...

这不是在我们的例子appropiate行为,因为它会破坏我们的直列布局。我们只是希望干净的文字...

最简单的方法是,在预览粘贴命令:

Clipboard.SetText(Clipboard.GetText()); 

并与它做...但你猜对了... Clipboa RD操作都没有部分信任允许...

我们也尝试了肮脏讨厌的黑客,利用此链接提出一个隐藏的文本框:
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()); 

这可以完全信任地工作,但由于某种原因,复制和Pas te TextBox的方法不能在部分信任中工作...

有谁知道如何检索WPF /部分信任中的剪贴板内容?

感谢

编辑:正如尼尔指出..我知道这是不是很漂亮,从剪贴板变异数据。但是,如果有人可以直接指向我如何我的问题将得到解答一样的只从部分信任中检索剪贴板中的文本:) ..

回答

0

这根本不可能。

最后,我们使用了一个切换按钮,您可以切换到一个文本框,粘贴到那里,然后切换回我们的控件。讨厌,但它的作品。

-1

http://msdn.microsoft.com/en-us/library/aa970910.aspx仅在部分信任中说明了“纯文本和油墨剪贴板支持”。 “富文本格式剪贴板”需要完全信任

+0

相信我..我知道它有可能从Word等应用程序复制/粘贴。http://msdn.microsoft.com/en-us/library/system.windows.clipboard.aspx表示部分信任应用程序可以从完整信任的应用程序粘贴可扩展应用程序标记语言(XAML)。 – Arcturus 2009-01-20 15:39:31