XAML.cz Magazín moderních technologií založených na XAML

User Controls

Napsáno pro WPF od Jarda Jirava  [26.01.2010]

Také znáte tu situaci, kdy vytváříte znovu a znovu to samé UI pro zobrazení vašich dat? Já doufám, že nikoliv a že znáte možnosti vašeho UI frameworku a využíváte tak schopnosti tvorby User controls. User controls nebo také vlastní prvky jsou právě pro takové účely vhodné a tak se s jejich podporou můžeme setkat jak ve WPF, tak také ve frameworcích jako je ASP.NET nebo WinForms.

Předtím než se však pustíte do vytváření vlastních prvků ve WPF, pojďme si něco říct o jejich tvorbě a vlastně i potřebě k jejich realizaci.

Ve WPF jsme totiž postaveni do maličko jiné situace právě díky tomu, jaké možnosti nám WPF nabízí a jak je tvorba uživatelského rozhraní ve WPF realizována. Tím, že WPF umožňuje kompozitní skládání UI, můžeme v mnoha případech stejně vhodně použít možnosti stylů nebo data template pro dosažení stejného efektu.

Nejběžnější důvod k tomu, že přejdeme k tvorbě vlastního uživatelského prvku je potřeba rozšířit funkcionalitu současného typu – nemíním samotný vzhled. Otázkou tedy zůstává, od jakého výchozího prvku budeme funkcionalitu rozšiřovat. Můžeme využít nějaký koknkrétní zobrazovací prvek, nebo podědit od třídy Control nebo podědit od třídy UserControl.

Tvorba UserControls

Jak jsme si již řekli, uživatelské prvky přímo excelují při tvorbě uživatelského rozhraní. Při zajištění této funkcionality pak máme tu výhodu, že veškerá potřebná logika je soustředěna do jedné třídy. Pro grafickou tvorbu pak můžeme využít jak grafického návrháře Visual Studia, tak také možností Expression Blend, který obzvláště při tvorbě User controls má nenahraditelnou výhodu. Jakmile pak máme vytvořen vlastní prvek, je poměrně snadné takový prvek vložit do vizuálního stromu uživatelského rozhraní.

Pokud jste autorem knihovny prvků, nebo vytváříte jen jeden prvek, asi budou vaše kroky směřovat k tomu, že si vytvoříte samostatný .NET projekt, ve kterém tyto prvky vytvoříte a budete je používat zkompilované.

V případě, že jste naopak konzumentem těchto prvků, vaše kroky budou úplně jiné. Nejprve potřebujete přidat referenci na knihovnu prvků. Poté je třeba přidat xmlns atribut do XAML souboru, tak aby XAML parser poznal s jakým typem bude mět pracovat.

Níže uvidíte příklad xmlns atributu, který odkazuje na assembly ControlLib jenž umožní použít všechny prvky z této knihovny. Poté použijete zadaný prefix controls při deklaraci použitého prvku.

<Window xmlns:controls="clr-namespace:ControlLib;assembly=ControlLib"

Závěrem

V tomto článku jsme si řekli něco o tom, jak konstruovat vlastní prvky a jak je začlenit do vizuálního stromu prvků. V příštím článku si povíme něco o tom, jak použít Control tempates a zároveň si poznatky z dnešního článku aplikujeme a zařadíme do vzorové aplikace.

Komentáře

ukládám komentář, vyčkejte prosím..
  1. Buďte první, kdo napíše komentář.

@xamlcz

  • RT @jvanrhyn: XAML, It's a bit like olives. Takes a while to get used to. But once you're used to it. It is actually pretty good. <3 XAML
  • RT @moser_christian: WPF Inspector 0.9.7 is released. It supports .NET 3.5 and 4.0 The project is now open source and available on CodeP ...
  • Jeff Handley oznámil vydání WCF RIA Services v.1.0 SP1 RTM http://bit.ly/gOgckn ke stažení na http://bit.ly/gVAXdK
  • jedna výzva pro Brno. Byl někdo z vás na přednášce o RIA v MS Akvárku? Dejte o sobě vědět. Děkuji
  • také jste uvažovali o tom, že zkusíte na projekt použít Caliburn Micro nebo naopak Prism 4? A co tak obojí, šlo by to nebo ne? Již brzy