【问题标题】:How to Draw AjaxControlToolkit TabPanel to Bitmap如何将 AjaxControlToolkit TabPanel 绘制到位图
【发布时间】:2015-10-21 02:10:20
【问题描述】:

我有一个包含许多选项卡的 ajax 选项卡容器。我想遍历每个选项卡并将选项卡面板内容绘制到位图。

这是我当前的代码:

foreach (object obj in container.Controls)
            {
                if (obj is AjaxControlToolkit.TabPanel)
                {
                    AjaxControlToolkit.TabPanel tabPanel = (AjaxControlToolkit.TabPanel)obj;

                    Bitmap m_Bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

                    Graphics graphics = Graphics.FromImage(m_Bitmap as System.Drawing.Image);
                    graphics.CopyFromScreen(25, 25, 25, 25, m_Bitmap.Size);

                    m_Bitmap.Save(@"C:\Users\user\Desktop\Project\Project1\Source Code\Project1\Image\" + tabPanel.HeaderText + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                }
            }

现在我可以遍历标签容器中的每个标签面板并截取整个网页,然后将位图图像保存在 Image 文件夹中。但我想截图/位图只是标签面板的内容。

问题:如何使用我当前的代码将 AjaxControlToolkit TabPanel 绘制到位图?

请指导我,谢谢。

【问题讨论】:

    标签: c# image graphics bitmap ajaxcontroltoolkit


    【解决方案1】:
    1. 从客户端代码中获取 TabPanel。这是示例代码:
    var tabContainer = $find("Content_DemoContent_Tabs");
    for(var i = 0; i < tabContainer.get_tabs().length; i++)
    {
        tabContainer.set_activeTabIndex(i);
        var element = tabContainer.get_tabs()[i]._element;
    }
    
    1. 计算每个element 在屏幕坐标中的位置。这是一项相当复杂且不可靠的任务,但您可以在此处查看如何操作:https://stackoverflow.com/a/21274679/644496
    2. 将此数据发送到服务器以制作屏幕截图。这是一项广泛而广为人知的任务,因此您可以选择任何方式来完成它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      相关资源
      最近更新 更多