如何在设计模式下以编程方式修改Web浏览器内容?

时间:2014-08-22 10:51:03

标签: c# wpf xaml browser designmode

这是我声明的依赖属性:

public static void IsDesignModePropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            WebBrowser browser = obj as WebBrowser;
            if (browser != null)
            {
                Boolean designMode = (Boolean)args.NewValue;
                if (designMode)
                {
                    browser.LoadCompleted += (s, e) =>
                    {
                        var htmlDoc = (s as WebBrowser).Document as IHTMLDocument2;
                        htmlDoc.body.setAttribute("contenteditable", "true");
                        htmlDoc.designMode = "On";
                    };
                }
                else
                {
                    browser.LoadCompleted += (s, e) =>
                    {
                        var htmlDoc = (s as WebBrowser).Document as IHTMLDocument2;
                        htmlDoc.body.setAttribute("contenteditable", "false");
                        htmlDoc.designMode = "Off";
                    };
                }
            }
        }

这是我的网络浏览器控件:

<WebBrowser  viewmodel:BrowserBehavior.IsDesignMode="True"  x:Name="webBrowser1" viewmodel:BrowserBehavior.Html="{Binding SelectedNode.ContentData.FileName, Converter={StaticResource converter}, Mode=OneWay}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="612"/>

我想以编程方式修改Web浏览器的内容,并通过键盘禁用修改;我的意思是有一个按钮作用于选择!

这怎么可能?

1 个答案:

答案 0 :(得分:0)

我找到了在IsDesignMode ="true"

时禁用键盘的方法
<WebBrowser KeyDown="webBrowser1_KeyDown" ... />
代码背后的

private void webBrowser1_KeyDown(object sender, KeyEventArgs e)
        {
            e.Handled = true;
        }

仍然在寻找我问题第二部分的答案!