Redraw a Whole Control on Resize


Özel denetimler veya Windows Paneli gibi Forms denetimleri yeniden boyutlandırılır zaman, sadece yeni maruz kalan bölümlerini yeniden çizilmesi vardır. Ancak, bu davranış bazen (bkz. Aşağıdaki 1) istenen sonuçları vermez.

Redrawing the whole control on resize

Kontrol sınıfında tanımlanan ResizeRedraw korumalı özellik resized zaman kontrolü kendisini yeniden çizer olup olmadığını gösterir. true Bu özelliği ayarlamak boyutlandırma üzerinde tüm kontrolü yeniden çizimini sağlamak için. Bu genellikle türetilmiş bir sınıf yapıcı yapılacaktır.
public MyControl()
{
InitializeComponent();
ResizeRedraw = true;
}

Siz veya türetilmiş bir sınıf oluşturmak istemiyorsanız olamaz Alternatif olarak,
yansıma kullanarak ya da sadece olay işleyicisi yeniden boyutlandırma geçersiz arayın
veya kontrol yöntemi Yenile özelliğini ayarlayın.

using System.Reflection;

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

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

Bir numune kontrol

Aşağıdaki uzanan ve ne zaman denetimin boyutu değişir küçülür bir elips gösteren bir
kullanıcı denetimi bir koddur:

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);
}
}

ResizeRedraw açıklamada, kontrol sadece kısmen yeniden çizilmesi ve whithout sonuç
yukarıdaki şekil 1'de benziyor. ResizeRedraw = true ifadesi dahil, aşağıdaki Şekil 2'de
gösterildiği gibi, kontrol doğru yeniden çizilir.

A control with the whole area redrawn.
Google Plus ile Paylaş

Kısaca: seymanblog

Panelde şablon düzenle deyip, bu satırı aratarak buraya kısaca hakkımda yazısı yazabilirsiniz.
    BLOGGER YORUMLARI
    FACEBOOK YORUMLARI

0 yorum:

Yorum Gönder