I just got the requirement that pasted screenshots should be resized to fit into the current page. The best and easiest way to realize that is to trap the ImageCreated event. This event returns the image that just has been created.

All we need to do, is to calculate the ratio to resize the image. Therefore, the page width of the current section excluding the page margins must be devided by the width of the image. This factor can be used to scale the image afterwards. The following code shows this ImageCreated event:

private void textControl1_ImageCreated(object sender, TXTextControl.ImageEventArgs e)
{
    // get screen resolution to convert twips to pixel
    int iTwipsPerPixel = (int)(1440 / textControl1.CreateGraphics().DpiX);

    if (((float)(e.Image.Size.Width / iTwipsPerPixel)) >= (textControl1.Sections.GetItem().Format.PageSize.Width - textControl1.Sections.GetItem().Format.PageMargins.Left - textControl1.Sections.GetItem().Format.PageMargins.Right))
    {
        // resize the image
        float fScaleFactor = ((textControl1.Sections.GetItem().Format.PageSize.Width - textControl1.Sections.GetItem().Format.PageMargins.Left - textControl1.Sections.GetItem().Format.PageMargins.Right) / ((float)(e.Image.Size.Width / iTwipsPerPixel))) * 100;
        e.Image.VerticalScaling = Convert.ToInt32(fScaleFactor);
        e.Image.HorizontalScaling = Convert.ToInt32(fScaleFactor);
    }
}

In the following screen-video you can see the sample in action. Feel free to contact me, if you have any questions about this solution.

Get Adobe Flash player