Személyes eszközök
Keresés

 

A InfoWiki wikiből


WPF / Content

A Content írja le valamilyen vezérlő tartalmát. A tartalom Object típusú elem, tehát bármi lehet. Egy dolog kivéve: nem tartalmazhat újabb Window objektumot. Window-k egymásba ágyazása tilos.

  • Content = Math.PI;
  • Content = DateTime.Now;

Természetesen nem jellemző az ilyen Content-ek beállítása. A Content azonban lehet másik vezérlő is, vagy egy panel jellegű vezérlő, amely további vezérlőket tartalmazhat. Ez utóbbiak használatának oka, hogy a Content ugyan szinte bármi lehet, de csak egy dolog lehet! Ha több dolgot akarunk a Content-be rakni, akkor azt be kell csomagolni egy panel jellegű komponensbe.

A vezérlők közös őse a UIElement osztály. Minden belőle származó példányban van OnRender() metódus, amely a kirajzolást végzi. Ha a Content-be ilyen leszármazottat teszünk, akkor a Content kirajzolásakor annak OnRender()-e hajtódik végre. Ha nem belőle származik a Content, akkor annak ToString()-je hívódik meg, és a kapott string fogja a Content-t alkotni.


// Uri uri = new Uri("http://www.ektf.hu/mainBanner.jpg");
 Uri uri = new Uri(  
  System.IO.Path.Combine(Environment.GetEnvironmentVariable("windir"),
  "Gone Fishing.bmp")
 );
 // --
 BitmapImage bitmap = new BitmapImage();
 bitmap.BeginInit();
 bitmap.UriSource = uri;
 bitmap.EndInit();
 // --
 Image img = new Image();
 img.Source = bitmap;
 img.Stretch = Stretch.None;
 img.Margin = new Thickness(192, 96, 48, 0);
 img.Opacity = 0.5;
 img.LayoutTransform = new RotateTransform(45);
 // --
 Content = img;

WPF / Button

A Button-nak is Content-je van, és csak egy dologra lehet ráállítani (sajnos). Vagyis nem triviális lépés, hogy egy buttonnak legyen text-je (szöveg), és egy ikon-ja is (pici kép). Természetesen megoldható, ha felteszünk rá egy panel-t, amire beigazítjuk a két elemet, és készen is vagyunk.

Legfontosabb természetesen az OnClick() metódus.

void ButtonOnClick(object sender, RoutedEventArgs args)
{
  MessageBox.Show("The button has been clicked and all is well.", Title);
}

Érdekes, de VS2008-ból egyelőre hiányzik az Events fül a Properties ablakban, így nem triviális event handler-t írni. A megoldásképp menjünk a XAML sorokhoz, és a Button adataiban nyomjunk Ctrl-szóközt. A helyi menüben felsorolva látszódnak a propertyk, és az event-ek is. Innentől már sima az ügy - válasszuk ki az Click event-et, máris beíródik a XAML-be. A Click XML attribútum értékének megadásakor a metódus nevét mint string-et kell beírni. Szerencsére itt is van segítség. Választhatunk egy kompatibilis paraméterezésű metódust, vagy készíthetünk újat is.

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Wpf:page70
Nézetek
nincs sb_18.191.234.191 cikk