【发布时间】:2008-08-07 20:24:34
【问题描述】:
开箱即用,在 MS Reporting Services 中,当设计时尺寸未知时,图像元素不允许图像本身居中。换句话说,图像(如果小于设计表面上分配的尺寸)将锚定在左上角,而不是中心。
我的报告会在运行时知道图像的 URL,如果它小于我的设计器中指定的尺寸,我需要能够使该图像居中。
【问题讨论】:
开箱即用,在 MS Reporting Services 中,当设计时尺寸未知时,图像元素不允许图像本身居中。换句话说,图像(如果小于设计表面上分配的尺寸)将锚定在左上角,而不是中心。
我的报告会在运行时知道图像的 URL,如果它小于我的设计器中指定的尺寸,我需要能够使该图像居中。
【问题讨论】:
这是我能够做到这一点的方法。在Chris Hays的帮助下
将图片大小调整到您希望在报告中显示的大小,将“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 这样做。
到目前为止一切顺利 - 我希望能有所帮助!
【讨论】: