Předmět Autor Datum
Používateľské rozhranie máš vo WPF alebo Windows Forms?
los 06.02.2009 08:33
los
Windows Forms
Jerryss 06.02.2009 19:02
Jerryss
Jazyk XAML sa používa vo WPF, takže ak chceš zostať vo Windows Forms, tak XAML nevyužiješ. Ale ak sa…
los 06.02.2009 21:26
los
Vytvor si vlastný UserControl a potom je to jednoduché. Stačí sa napojiť na udalosti prekreslenia a…
Len tak 14.02.2009 23:06
Len tak
Mohl by jsi sem dat, prosim nejaky priklad nastylovaneho buttonu? Dekuji
jezz 16.02.2009 18:47
jezz
Robíš to ako WinForms alebo ako WPF? Vo WPF to urobíš easy cez Blenda. Ale ak to chceš urobiť vo Wi…
Len tak 16.02.2009 23:37
Len tak
Windows form. Dekuji
jezz 17.02.2009 08:13
jezz
Vytvor si klasicky UserControl cez pridanie súboru a potom je to jednoduché, podedíš vlastnosti a ud… poslední
Len tak 17.02.2009 09:03
Len tak

Jazyk XAML sa používa vo WPF, takže ak chceš zostať vo Windows Forms, tak XAML nevyužiješ. Ale ak sa chceš hrať s výzorom používateľského rozhrania, tak prejsť na WPF by mohlo byť správnou cestou.

Štýlovanie prvkov používateľského rozhrania je vo Windows Forms prakticky obmedzené len na to, čo ti umožňuje nastaviť daný prvok - pozadie, farba, font a podobne. Keď chceš výzor niečoho upraviť spôsobom, ktorý nie je daným prvkom podporovaný, skončíš najčastejšie tak, že budeš robiť celé vykresľovanie sám.

Môžeš prípadne napísať, že čo a ako chceš konkrétne štýlovať - možno sa to bude dať spraviť pomerne jednoducho aj vo Windows Forms.

Vytvor si klasicky UserControl cez pridanie súboru a potom je to jednoduché, podedíš vlastnosti a udalosti :

public partial class TButton : UserControl
{
    private bool ishover = false;

	protected override void OnClick(EventArgs e)
	{
	   base.OnClick(e);
	}

    protected override void OnMouseMove(MouseEventArgs e)
	{
       if (!ishover)
       {
           ishover = true;
           this.Invalidate();
       }
       base.OnMouseMove(e);
    }

    protected override void OnMouseLeave(EventArgs e)
	{
       if (ishover)
       {
           ishover = false;
           this.Invalidate();
       }
       base.OnMouseLeave(e);
    }

    protected override void OnPaint(PaintEventArgs e)
	{
    	Graphics g = e.Graphics;
    	g.FillRectangle(new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, this.Width, this.Height), (ishover ? Color.Gray : Color.Silver), Color.WhiteSmoke, System.Drawing.Drawing2D.LinearGradientMode.Vertical), new Rectangle(0, 0, this.Width, this.Height));
		SizeF TextSize = g.MeasureString(this.Text, this.Font);
		g.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), this.Width / 2 - TextSize.Width / 2, this.Height / 2 - TextSize.Height / 2);
	}
}

Aplikáciu spusti / prekompiluj a v design móde - v zozname komponent - Vlastné komponenty sa ti objaví TButton (ten prenesieš ako klasický button na plochu formulára a to je všetko).

Zpět do poradny Odpovědět na původní otázku Nahoru