Windows Presentation Foundation (WPF)- Luento 14

Tutustutaan ControlTemplateihin ja omiin komponentteihin.

Luentotaltiointi

Ongelmia videon katselussa?

luentoesimerkki (zip)

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.

ContentPresenter

ItemsPresenter

<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:

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

themes and control libraries

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

WebBrowser Control in WPF

21 important FAQ questions for WPF and SilverLight

How to: Creating WPF user Control & using it in a WPF application

User Controls in WPF

WPF tutorial - Creating a Custom Panel Control

Creating and consuming a custom WPF control

Recommended practices for WPF Custom Control developers

Control authoring overview

ControlTemplate

WPF Control Template - An Overview

TemplateBinding: a bridge between styles and templates

Storyboards Overview

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/luennot/luento14/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2010-10-21 15:13:57
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta