3

フォームにSystem.Windows.Form.WebBrowserコントロールがあります。そのブラウザオブジェクトをURLに移動します。

ページの読み込みが完了したら、読み込まれたページのさまざまな側面を分析したいと思います。

特に、IHTMLStyle3インターフェイスにある属性'writingMode'に興味があります。

何かのようなもの:

public void MyMethod(HtmlElement element)
    {
        IHTMLElement2 element2 = element.DomElement as IHTMLElement2;
        IHTMLStyle3 style3 = element2.currentStyle as IHTMLStyle3;

        string writingMode = style3.writingMode;
    ...

問題は、style3の値がnullであるということです。これは、IHTMLElement2.currentStyleがIHTMLStyle3をサポートしていないことを意味すると思います。

IHTMLELement.styleのキャストも試してみました。しかし、それはIHTMLStyle3としてうまくキャストされますが、Html要素に適用されているため、スタイルが含まれていないようです。

4

1 に答える 1

1

IHTMLElement2.currentStyleドキュメントを見ると、通常のstyleプロパティはインラインスタイルのみであるため、プロパティを取得する必要があると思います。この違いは、次の注釈に示されていますIHTMLElement2.currentStyle

オブジェクトのスタイルがインラインに設定されていない場合、IHTMLStyleインターフェイスとIHTMLCurrentStyleインターフェイスのプロパティによって返される値は異なります。たとえば、Webページの作成者が段落のcolorプロパティを、インラインではなくリンクまたは埋め込みスタイルシートを介してのみredに設定した場合、IHTMLCurrentStyle :: colorプロパティは値redを返し、IHTMLStyle::get_colorは値を返します。プロパティは値を返しません。ただし、次の例のように、作成者がcolorプロパティの値をインラインで指定した場合、IHTMLCurrentStyle::colorプロパティとIHTMLStyle::get_colorプロパティの両方が値redを返します。

currentStyleIHTMLCurrentStyle照会されたときに必要に応じて提供されるインターフェースを提供しIHTMLCurrentStyle2ますwritingMode

于 2009-02-25T18:42:18.773 に答える