Windows Presentation Foundation (WPF)- Luento 14
Tutustutaan ControlTemplateihin ja omiin komponentteihin.
Luentotaltiointi
Ongelmia videon katselussa?ControlTemplate
Komponentin ulkoasu voidaan uusia kokonaan ilman, että tarvitsee luoda omaa komponenttia.
Uutta ulkoasua määritellessä on muistettava muutettavan kontrollin normaali toiminta ja siihen liittyvät erityisyydet. esim. painikkeessa on muistettava esittää painikkeen sisältö ja listboxissa listboxiin lisätyt elementit.
<Style TargetType="HeaderedItemsControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type HeaderedItemsControl}"> <StackPanel> <Grid> <Rectangle Fill="{TemplateBinding Background}"/> <ContentPresenter ContentSource="Header"/> </Grid> <Grid> <Rectangle Stroke="{TemplateBinding BorderBrush}"/> <ItemsPresenter Margin="2,0,0,0"/> </Grid> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> </Style>
TemplateBinding sitoo komponentin sisäisten komponenttien ominaisuuksia komponentin ominaisuuksiksi.
<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
Omat kontrollit
WPF:ssä voi luoda omia kontrolleja kuten Windows Formsissakin mutta tarve niille on pienempi
Yleensä riittää, kun uudelleenmuotoillaan olemassaolevia kontrolleja tyyleillä, datatemplateilla, triggereillä ja controltemplateilla. Lisäksi useimpien valmiiden kontrollien sisään voi sijoittaa melko vapaasti muita kontrolleja mikä ei ollut Windows Formsissa mahdollista.
Jos oman kontrollin on tarkoitus vain näyttää erilaiselta kuin valmiiden niin silloin ei oman kontrollin luominen ole tarpeellista.
Omia kontrolleja voi luoda seuraavilla tavoilla:
- Perimällä UserControl-luokasta (vrt. Windows Formsin koostetut komponentit)
- Datatemplatet ja Controltemplatet eivät toimi näin luodun kontrollin yhteydessä
- Perimällä Control-luokasta tai valmiista kontrollista
- Vaivalloisempaa tehdä kuin UserControlista perittäessä
- Controltemplatet toimivat
- Perimällä FrameWorkElement-luokasta
- Käytetään vain jos haluaa täysin omiin käsiin kontrollin ulkoasun
Attached Properties
Attached Propertiesin avulla voi lisätä toisiin objekteihin lisää ominaisuuksia. vrt. DockPanelin toimintatapa.
Lisätietoa
Introduction to Attached Behaviors in WPF
Using a Behavior to magnify your WPF applications
Customizing Controls For Windows Presentation Foundation
Dealing with transformations in WPF: Parti I
Dealing with transformations in WPF: Part II
Using Windows Media Player COM in WPF
21 important FAQ questions for WPF and SilverLight
How to: Creating WPF user Control & using it in a WPF application
WPF tutorial - Creating a Custom Panel Control
Creating and consuming a custom WPF control
Recommended practices for WPF Custom Control developers
WPF Control Template - An Overview
Käyttäjien kommentit