Showing posts with label WEB. Show all posts
Showing posts with label WEB. Show all posts

Friday, December 19, 2014

WPF - Redrawing the whole control on resize - Coded in C# [C-Sharp]VB, C++ (Open Source)


Can't Afford A Bot? Buy SEO & Social Media Metrics For Cheap Starting at $1 Dollar



Redrawing The Whole Control On Resize[C#]

CODE WRITTEN BY: JASON "JAY STILLA" LEE

Written By Jason Jay Stilla Lee - Programmer / Musician 
Enjoy The Music While You Study This Code or Copy and Paste into .CS
Coded: C#  Text Editor: Visual Studios 2013  Project: Windows Forms - WPF Application
Tutorial # 6 How To Redraw The Whole Control on Resize.
Music By Yours Truly Jay Stilla: Album Jason Society
Press Play on a Song, Crack Your Fingers And Lets Get To Coding


When custom controls or Windows Forms controls like Panel are resized, only their newly exposed portions are redrawn. However, this behaviour sometimes does not provide the desired results (see fig. 1 below).
This example shows how to ensure redrawing of the whole control after resizing by setting the control's ResizeRedraw property.

Fig. 1. A partially redrawn control after resizing.

Redrawing the whole control on resize

The ResizeRedraw protected property defined in the Control class indicates, whether the control redraws itself when resized. To ensure redrawing of the whole control on resize set this property to true. This will usually be done in the constructor of a derived class.
[C#]
public MyControl()
{
InitializeComponent();
ResizeRedraw = true;
}
Alternatively, if you can not or don't want to create a derived class, set the property using reflection or simply call the Invalidate or Refresh method in the control's Resize event handler.
[C#]
using System.Reflection;

public static void SetResizeRedraw(Control control)
{
typeof(Control).InvokeMember("ResizeRedraw",
BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
null, control, new object[] { true });
}
[C#]
myControl.Resize += new EventHandler(myControl_Resize);

private void myControl_Resize(object sender, EventArgs e)
{
((Control)sender).Invalidate();
}

A sample control

The following is a code of a user control displaying an ellipse that stretches and shrinks when the control's size changes:
[C#]
public partial class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
ResizeRedraw = true;
}

protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
// draw a blue ellipse into the control area
e.Graphics.FillEllipse(new SolidBrush(Color.Blue), 2, 2,
ClientRectangle.Width - 4, ClientRectangle.Height - 4);
}
}
Whithout the ResizeRedraw statement, the control is redrawn only partially and the result looks like in figure 1 above. When the ResizeRedraw = true statement is included, the control is redrawn properly as shown in the following figure 2.

Fig. 2. A properly redrawn control after resizing.


Google Blogs. TopBots.BlogSpot.Com [Created By iMyriad CEO J Jay Stilla Lee" it is a Informative Social Media Marketing Bots News Blog & That List Free Downloads of Automated Bot Software Apps for Facebook, Twitter, Youtube, Google, Instagram & Social Media Websites Written By Jason "Jay Stilla" Lee Online. His Alias Mister Bots Is Software Creation Specialist whom Develops Marketing Bots and Software Scripts that are Given away at no cost weekly. He Also teaches SEO Secrets and Tools For Advertising" Blogger.Com -TopBots Website Blog Https://TopBots.BlogSpot.Com < Informative Software and internet Technology News Blog.. Web blogging on new 2015 Bots and 2014's Best Software Bots Automated and Scripted Combined.

Jay-Stilla Productions LLC - Limited Liability Corporation LLC