3

我正在尝试向 WPF Web 浏览器添加一个属性,以允许我在运行时使用 NavigateToString,但出现异常:

SystemError:无法设置未知成员“{clr-namespace:WebBrowserHelper;Assembly=helpers}WebBrowserHelper.Body”。

我在 C# 程序集中有一个工作版本,但我想知道如何使用 IronPython 来完成它。

我的 ns 声明如下所示:

xmlns:helpers="clr-namespace:WebBrowserHelper;Assembly=helpers"

它是这样使用的:

<WebBrowser helpers:WebBrowserHelper.Body="{Binding html}" />

这是 IronPython 代码:

import clr

clr.AddReference("System.Windows")
clr.AddReference("WindowsBase")
clr.AddReference("PresentationCore")
clr.AddReference("PresentationFramework")

from System.Windows import (
DependencyObject, DependencyProperty
)

class WebBrowserHelper(DependencyObject):
    _Body = None

    def __new__(cls):
        if notWebBrowserHelper._Body:
            WebBrowserHelper._Body = DependencyProperty.RegisterAttached(
                "Body", clr.GetClrType(str), clr.GetClrType(WebBrowserHelper), PropertyMetadata(WebBrowserHelper.OnBodyChanged))
        return DependencyObject.__new__(cls)

    def getBody(self):
        return self.GetValue(WebBrowserHelper._Body)

    def setBody(self, value):
        self.SetValue(WebBrowserHelper._Body, value)

    @staticmethod
    def OnBodyChanged(dependancyObject, eventArgs):
        dependancyObject.NavigateToString(eventArgs.NewValue)

    Body = property(getBody, setBody)
4

0 回答 0