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.