问题

在MS Reportment 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 这样做.

到目前为止,我的希望是有帮助的!

  相同标签的其他问题

reporting-services