none
如何设置缩放,才能使ReportViewer报表显示比例不受Windows影响?

    问题

  • 在使用ReportViewer显示报表时,其缩放会受到windows设置“更改文本、应用和其它项目的大小”的影响(如:本来应该基本显示满页,却显示为只占页面的一半)。该如何设置,才能使报表内容与纸张的比例始终与实际相符呢?

    韩立学


    2016年6月12日 1:59

全部回复

  • 需要设置缩放大小

    https://msdn.microsoft.com/zh-cn/library/microsoft.reporting.winforms.reportviewer.scale%28v=vs.120%29.aspx?f=255&MSPPError=-2147217396


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年6月12日 2:41
  • 谢谢回复!

    我用如下语句试了几次,其中的数字分别改为10、100、1000,除了上方的工具栏受到影响外,页面显示效果无任何变化:

         Me.ReportViewer.Scale(New SizeF(10, 10))
            Me.ReportViewer.RefreshReport()
     

    问题在哪里?


    韩立学

    2016年6月12日 6:16
  • Hi,

    直接禁用窗体缩放如何?

    范例:

            Me.AutoScaleMode = AutoScaleMode.None

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2016年6月17日 7:45
  • Hi,

    直接禁用窗体缩放如何?

    范例:

            Me.AutoScaleMode = AutoScaleMode.None

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    也没什么变化

    韩立学


    2016年7月4日 6:50
  • 是用的RDLC还是reporting services? 试下

     ReportViewer.ServerReport.Refresh();

     ReportViewer.LocalReport.Refresh();     


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年7月4日 7:17
  • 用的是rdlc,有Refresh,没用

    韩立学

    2016年7月4日 9:08
  • 感觉问题可能不在于AutoScaleMode,而是windows10的“更改文本、应用和其它项目的大小”在作怪。因为无论AutoScaleMode设置为什么值,窗体总是随着windows10这一设置而变化的,但纸张的大小似乎不变,这就造成纸张大小和报表内容比例失调。

    如果能获取windows10这一设置的值,从而改变纸张大小可能问题就解决了,但如何获取呢?AutoScaleFactor并无变化。


    韩立学


    2016年7月5日 0:22
  • Hi,

    >>而是windows10的“更改文本、应用和其它项目的大小”在作怪。

    但是那个属性就是DPI scaling啊, winform和他匹配的就是这个属性。

    另外,根据你的描述感觉像是下面这个属性影响了你的文件(控制面板\外观和个性化\显示),因为window的缩放属性会把控件都一起缩放:

    如果和系统设置字体有个的话你可以尝试在onload方法中把窗体字体重写为默认大小:

    Protected Overrides Sub OnLoad(e As EventArgs)
    	Me.Font = New Font(Me.Font.FontFamily, Me.Font.SizeInPoints * 125 / 96)'125那边和当前dpi对应,默认是96
    	MyBase.OnLoad(e)
    End Sub

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.



    2016年7月7日 8:42