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();