Přehled služby chování
BehaviorService Spravuje uživatelské rozhraní v návrháře.Poskytuje jednotný způsob, jak pracovat s prvky uživatelského rozhraní, jako jsou například události související s myší, příkazy a operace a přetažení OLE v době návrhu.
Správa uživatelského rozhraní v době návrhu
Vytváření vlastních zkušeností návrhu klíčovým aspektem je správa uživatelského rozhraní.Návrhu zkušenosti se poskytují pro vaše vlastní ovládací prvek ve vytváření vlastních designer.
Jako návrhář vývojář, můžete vytvořit vlastní uživatelské rozhraní vrstev, nazývá adorners.V rámci každé vrstvy povrchu můžete vytvořit vlastní Glyph typy pro malování, tažení a jiné operace uživatelského rozhraní.Každý Glyph může být spojen Behavior typu.A Behavior je třída, která má přetížení pro všechny vstup uživatele, včetně příkazů nabídky, pohyby myši a operace a přetažení OLE.Behaviorobjekty lze také přidat nezávisle Glyph objekt tak, aby jejich lze zapojení do obecného uživatelského vstupu pro celý designer.Všechny tři výše uvedených funkcí jsou implementovány s Behavior typu.
[!POZNÁMKA]
Je nutné přidat odkaz na sestavení návrhu, System.Design.dll.Toto sestavení není součástí.NET Framework 4 profilu klienta.Chcete-li přidat odkaz na System.Design.dll, je nutné změnit cílový rámec projektu na .NET Framework 4.
V .NET Framework verze 1.1, některé události, jako například OnMouseDragBegin, byla oslabena ControlDesigner třídy.V tomto modelu mnohem návrháře logiku uživatelského rozhraní je implementována EventHandler.Protože na ovládací prvek, který uživatel může pracovat s několika určených oblastí, vyžaduje tento model psaní značnou podporující logiku.
Behavior Typu řeší tuto situaci.BehaviorService Se skládá ze dvou částí.Následující tabulka zobrazuje s popisy jednotlivých částí.
Část |
Description |
---|---|
Skládat z Behavior třídy |
Každá třída má metody týkající se příkazů nabídky, operace a přetažení OLE, události myši a tak dále.Třída v horní části zásobníku je active Behaviora všechny uživatele vstupní směrována, Behavior. |
Adorner Je neviditelné vrstvy mezi povrchem návrhu a uživatele.Adorner Mohou obsahovat Glyph objekty, které jsou poskytnuté objekty.A Glyph mohou být testovány přístupů službou chování a volitelně lze vystavit Behavior objekt, který se stane aktivním Behavior pro jako Glyph zprávy true z jeho test zásahu. |
Zatímco Model Windows Forms Designer stále podporuje původní ControlDesigner lokální změny drags a myši přesune tyto akce jsou implementovány jako Behavior objekty.Následující tabulka obsahuje prvky v Návrháři pro jednoduché ovládací prvek, který má běžnou sadu úchytů.
Chování prvku |
Description |
---|---|
Výběr Adorner |
Jediný dekorativních vrstvy zpracovává všechny Výběr uživatelského rozhraní Glyph objektů. |
Subjekt glyfů |
Zcela průhledné tělo Glyph je umístěn nad horní ovládacího prvku.Jeho chování zpracovává všechny interakce myši. |
Vyjmout glyfů |
Vyjmout Glyph objekty kreslení držadla pro ovládací prvek.Jejich Behavior řízení operací přetažení objektů. |
Rozšíření návrhu uživatelského rozhraní
BehaviorService Model umožňuje novou funkci, která se snadno nad vrstvou existující návrhář uživatelského rozhraní.Nové uživatelské rozhraní zůstává nezávislý jiných definovaných Glyph a Behavior objektů.Například inteligentní značky na některé ovládací prvky přistupuje Glyph v pravém horním rohu ovládacího prvku ().
Inteligentní značka kód vytvoří vlastním Adorner vrstvy a přidá Glyph objekty v této vrstvě.Tím zachováte inteligentní značka Glyph objekty oddělit od výběru Glyph objektů.Potřebný kód pro přidání nového Adorner se Adorners kolekce je jednoduché.
behaviorService = (BehaviorService)serviceProvider.GetService(typeof(BehaviorService));
designerActionAdorner = new Adorner();
behaviorService.Adorners.Add(designerActionAdorner);
Glyph dag = new DesignerActionGlyph(/*...*/);
designerActionAdorner.Glyphs.Add(dag);
Glyfy a chování
Glyph Typu je jednoduché.Pokud potřebujete složitější funkce, můžete přidat do vlastní třídy odvozené od Glyph.
Glyphobjekty mohou mít Behavior objekty, ale nejsou vyžadovány.A Glyph bez Behavior obsahuje objekty Behavior vlastnost, která vrací null.
A Behavior byla podporována metodu pro každou interakci uživatele.Například základní Behavior třída má metody pro podporu a přetažení operace jako OnDragEnter a OnGiveFeedback.
Většina metod vrátit logická hodnota označující, zda byla zpracována událost.Přetáhněte události mají hodnotu DragEventArgs parametr.Jednotlivé položky můžete přidat nebo odebrat vracející se z nich FindCommand metoda.FindCommand Metoda funguje ve spojení s DisableAllCommands vlastnosti můžete určit, jak MenuCommand objekty ovlivňovat chování.
Adorners
Adorner Jako server proxy mezi uživatelského rozhraní lze zobrazit související prvky, které se skládají z Glyph objekty a BehaviorService.
Každý Adorner lze povolit a zakázat.Povoleno pouze Adorner objekty obdrží přístupů zprávy z testu a Malování BehaviorService.
Při Adorner je přidán do BehaviorServiceAdornerCollection z BehaviorService, sady kolekce BehaviorService vlastnosti tak, aby Adorner voláním BehaviorService.
Volání Adorner objektu Invalidate metoda vynutí jeho přidružený BehaviorService aktualizace Adorner okna
Předání chování
Nejsnáze lze přidat Behavior objekty do zásobníku chování je pomocí Glyph objekty, ale to není jediným způsobem.Glyphsamotnými objekty můžete posunout Behavior vrství objekty na chování a mohou posunout Behavior objekty přímo na chování zásobníku.Zváží případ, ve kterém chcete úchyt grab kolem na povrchu návrhu.Namísto při psaní logiky sledovat přetahovaného uživatele Glyph sám provede následující akce v posloupnosti s chování zásobníku.
Při stisknutí tlačítka myši Glyph tlačí nový Behavior chování zásobníku.Tento Behavior zpracovává události myši přesunout a Myš nahoru.Všechny příkazy nabídky jej také vypnout tak, že neexistuje žádný způsob pro klávesové zkratky nebo jiných příkazů dochází po dobu trvání přetahování.
Při uvolnění tlačítka myši Behavior dokončí tah pohybu a samotný POP ze zásobníku chování.To automaticky obnoví předchozí Behavior.
[!POZNÁMKA]
BehaviorService Architektury je vázáno na model Windows Forms modelu a proto nepodporuje jiných technologií zobrazení, například webové formuláře.