17

开箱即用,在 MS Reporting Services 中,当设计时尺寸未知时,图像元素不允许图像本身居中。换句话说,图像(如果小于设计表面上分配的尺寸)将锚定在左上角,而不是中心。

我的报告将在运行时知道图像的 URL,如果它小于我的设计器中指定的尺寸,我需要能够使该图像居中。

4

1 回答 1

8

这是我能够做到这一点的方法。在克里斯海斯的帮助下

将图像大小调整为报告中所需的大小,将 "Sizing" 属性更改为"Clip"

使用表达式动态设置图像的左侧填充:

=CStr(Round((4.625-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Width/96)/2,2)) & "in"

使用表达式动态设置图像的顶部填充:

=CStr(Round((1.125-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Height/96)/2,2)) & "in"

对 Chris 的代码所做的第一个修改是在报告中换掉我的图像元素的尺寸(我的图像是4.625x1.125 - 参见上面的数字)。

我还选择从 URL而不是数据库获取流。我使用了 WebRequest.Create.GetResponse。GetResponseStream就是这样做的。

到目前为止一切顺利 - 我希望这会有所帮助!

于 2008-08-07T20:31:41.010 回答