首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于打印的C# Winforms“投影矩阵”

用于打印的C# Winforms“投影矩阵”
EN

Stack Overflow用户
提问于 2012-08-28 00:22:06
回答 2查看 272关注 0票数 0

我有一个UserControl,这是override Paint()与我自己的图纸。我希望允许用户打印它。

因为我已经花了很多时间编写public void Draw(Graphics e),所以我希望重用这个方法,只传递PrintEventArgs.Graphics。我意识到这并不是那么简单。我甚至还得自己呼叫它。

有没有像OpenGL "Projection Matrix“这样的东西可以用来计算”最佳拟合“或"100%比例”类型的打印特征?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-28 00:38:39

Graphics对象具有矩阵类型的Transform属性,该属性可用于缩放、旋转等绘制的图形,其方式与OpenGL矩阵非常相似。

票数 0
EN

Stack Overflow用户

发布于 2012-08-28 01:20:44

我会将用户绘图移到一个单独的方法中,如下所示:

代码语言:javascript
复制
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Rectangle client=new Rectangle(0, 0, ClientSize.Width-1, ClientSize.Height-1);
        Render(e.Graphics, client);
    }

    public void Render(Graphics g, Rectangle client)
    {
        g.DrawEllipse(Pens.Blue, client); //test draw
        //...
    }

然后从打印文档中调用它:

代码语言:javascript
复制
    private void button1_Click(object sender, EventArgs e)
    {
        PrintPreviewDialog dlg=new PrintPreviewDialog();
        PrintDocument doc=new PrintDocument();

        doc.PrintPage+=(s, pe) =>
        {
            userControl11.Render(pe.Graphics, pe.PageBounds); // user drawing
            pe.HasMorePages=false;                
        };
        doc.EndPrint+=(s, pe) => { dlg.Activate(); };
        dlg.Document=doc;
        dlg.Show();            
    }

结果是:

编辑1以保持打印输出中的像素数不变,然后将打印例程修改为:

代码语言:javascript
复制
        doc.PrintPage+=(s, pe) =>
        {
            Rectangle client = new Rectangle(
                pe.PageBounds.Left, 
                pe.PageBounds.Top,
                userControl11.ClientSize.Width-1,
                userControl11.ClientSize.Height-1 );
            userControl11.Render(pe.Graphics, client);
            pe.HasMorePages=false;                
        };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12145763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档