C# 如何从WebBrowser WPF控件获取选定文本并将其绑定到字符串对象?

C# 如何从WebBrowser WPF控件获取选定文本并将其绑定到字符串对象?,c#,wpf,xaml,web,browser,C#,Wpf,Xaml,Web,Browser,这是我的网络浏览器: <WebBrowser viewmodel:BrowserBehavior.Html="{Binding SelectedNode.ContentData.FileName, Converter={StaticResource converter}, Mode=OneWay}" /> 事实上,可以选择WebBrowser控件中的文本 我想知道是否可以检索字符串对象中的选定部分 PS:当右键单击所选部分时,我注意到用户可以复制所选文本。所以我的第二个问题是“

这是我的网络浏览器:

<WebBrowser viewmodel:BrowserBehavior.Html="{Binding SelectedNode.ContentData.FileName, Converter={StaticResource converter}, Mode=OneWay}" />

事实上,可以选择WebBrowser控件中的文本

我想知道是否可以检索字符串对象中的选定部分


PS:当右键单击所选部分时,我注意到用户可以复制所选文本。所以我的第二个问题是“我们可以得到复制的文本吗?”我的意思是复制的部分应该保存在某个环境变量的某个地方,我们可以在c#中得到它吗?

您不能从
WebBrowser
绑定选定的文本,但您可以像这样手动获取它:

var doc = webBrowser.Document as mshtml.HTMLDocument;
if (doc != null)
{
    var currentSelection = doc.selection;
    if (currentSelection != null)
    {
        var selectionRange = currentSelection.createRange();
        if (selectionRange != null)
        {
            var selectionText = selectionRange.Text;
            //do something with selected text
        }
    }
}
其中
webBroswer
是您的浏览器控件

<WebBrowser x:Name="webBroswer" ... />

复制的内容可从
剪贴板
@YoussefMessaoudi获得。您不能绑定选择文本,但可以获取它manually@dkozl:如何手动获取选择?@YoussefMessaoudi检查我的第一个关于获取选择文本的答案对我来说很好!我现在要问的问题是“如果没有代码隐藏,如何做到这一点”您无法绑定到选择,您没有要绑定的属性。您需要在代码后面执行此操作。我如何获取
selectionText
的起始位置和结束位置?您无法获取此信息。基本上,
currentSelection.createRange()
也提供了一个值,因此您可以执行
var rangeMetrics=(mshtml.IHTMLTextRangeMetrics)selectionRange但这些接口都没有为您提供开始选择
IHTMLTextRangeMetrics
为您提供矩形坐标,这是您所能得到的最接近的坐标。如果您想要
IHTMLTxtRange
还可以为您提供
htmlText
属性,而不仅仅是文本。
var copiedText = Clipboard.GetText();