1

我需要在我的 c# 代码中获取 IHTMLElements 边距占用的实际像素数。我查看了它的样式和 currentStyle 成员,但相关部分要么为空,要么设置为“自动”。

搜索互联网已经在 javascript 中显示了 getCurrentStyle 函数,但我需要在我的 c# 代码中使用这些数字。

显然我对 js 和 html 以及一切都有些陌生......

那么,有没有办法在 c# 代码中获得用于元素边距(或任何其他测量值)的实际计算像素数?

我忘了补充:在可预见的将来,这只会在 Internet Explorer 中使用

4

3 回答 3

1

它必须在 C# 代码中吗?通过脚本在客户端执行此操作可能更容易 - 例如,对于jQuery ,一些width()innerWidth()outerWidth()的组合应该返回边距。

于 2009-05-11T03:58:29.187 回答
0

从 offsetWidth 中减去 IHTMLElement2.clientWidth 怎么样?

有关指标的更多详细信息:http: //msdn.microsoft.com/en-us/library/ms530302 (v=vs.85).aspx

于 2011-03-19T00:47:49.727 回答
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='server' 将这些变量附加到 input type='hidden' 元素,然后您可以使用 DOM 元素的 Value 属性在 C# 中访问这些变量。

C# 部分

 string marginTop = int.Parse ( txtHidMarginTop.Value );
    string marginLeft = int.Parse ( txtHidMarginLeft.Value );
    string marginRight = int.Parse ( txtHidMarginRight.Value );
    string marginBottom = int.Parse ( txtHidMarginBottom.Value );
于 2009-05-11T07:45:51.703 回答