2009-05-11 26 views
1

私のC#コードでは、IHTMLElementsマージンが占める実際のピクセル数を取得する必要があります。私はスタイルとcurrentStyleのメンバーを見てきましたが、関連する部分はnullか "auto"に設定されています。c#でHTML要素の実際のマージンを取得する

インターネットを検索するとJavaScriptのgetCurrentStyle関数が表示されていますが、これらの番号がC#コードに必要です。明らかに

私は、要素のマージン(またはそれの任意のだために使用されているピクセルの実際の計算された数で取得する方法がある...

JSとHTML、すべてのビット新たなんですその問題のための他の測定値)のC#コードですか?

私は追加するのを忘れ:これは近い将来

答えて

1

用のInternet Explorerに慣れされるには、C#のコードである必要はありますか?例えば、jQueryの場合、width()innerWidth()outerWidth()の組み合わせでマージンを返すなど、スクリプトでクライアントで行う方が簡単です。

+0

私は考えてC#で番号にアクセスできるようにする必要があります。私は、私が再構築することができない、またはそのようなものがたくさんある既存のコードで作業しています。スクリプトで必要な番号を生成し、それをC#でアクセスすることは可能ですか? –

+0

私は完全な初心者でもあるので、私の言うことに注意してください:しかし、C#からJS結果にアクセスする方法の1つは、JSの結果をDOMに書き込むことです(DOMの隠れたテキストノードの値など) 。 – ChrisW

0

Javascriptのセクション

VAR elementToCalc =のdocument.getElementById( "あなたの要素");

document.getElementById('txtHidMarginTop').value = parseInt (elementToCalc.currentStyle.marginTop); 
document.getElementById('txtHidMarginLeft').value = parseInt (elementToCalc.currentStyle.marginLeft; 
document.getElementById('txtHidMarginRight').value = parseInt (elementToCalc.currentStyle.marginRight; 
document.getElementById('txtHidMarginBottom').value = parseInt (elementToCalc.currentStyle.marginBottom); 

HTMLセクション

<input type='hidden' id='txtHidMarginTop' runat='server' /> 
<input type='hidden' id='txtHidMarginLeft' runat='server' /> 
<input type='hidden' id='txtHidMarginBottom' runat='server' /> 
<input type='hidden' id='txtHidMarginRight' runat='server' /> 

にrunat = 'サーバ' と入力タイプ= '隠された' 要素にこれらの変数を取り付け、その後、DOM要素を使用してC#でこれらの変数にアクセスすることができますValueプロパティ。 offsetWidthからIHTMLElement2.clientWidthを引いについて

C#Secition

string marginTop = int.Parse (txtHidMarginTop.Value); 
    string marginLeft = int.Parse (txtHidMarginLeft.Value); 
    string marginRight = int.Parse (txtHidMarginRight.Value); 
    string marginBottom = int.Parse (txtHidMarginBottom.Value);