.NET 3.0 en liten översikt - del 4 (WPF)
Förord
Microsoft har nyligen släppt version 3.0 av .NET frameworket. Vad innehåller det för nytt och användbart då? Vi ska granska en del av nyheterna i en liten artikelserie. Nu har det blivit dags att titta på Windows Presentation Foundation (WPF).Innehåll
»»
»
»
»
Relaterade artiklar
» .NET 3.0 en liten översikt - del 1» .NET 3.0 en liten översikt - del 2
» .NET 3.0 en liten översikt - del 3
» .NET 3.0 en liten översikt - del 5 (WPF)
» .NET 3.0 en liten översikt - del 6 (WPF) - sista delen
Windows Presentation Foundation (WPF), eller Avalon som kodnamnet var i utvecklingsskedet handlar om UI.
WPF är nästa generations user interface teknologi från Microsoft, efterföljaren till WinForms (samt delvis också ASP.NET).
Några egenskaper (i ingen speciell ordning):
Eftersom ämnet WPF är stort och räcker till att fylla ut böcker, så kommer denna artikel inte att vara en grundkurs i egentlig mening, utan snarare en demonstration av en del grejer man kan åstadkomma med WPF.
Som kuriosa kan nämnas att Charles Petzolds opus Applications=Code+Markup om ämnet går på nästan 1000 sidor
Mikrosoft tillhandahåller ett par olika utvecklingsverktyg, ämnade för olika målgrupper:
Eller för den masokistiska utvecklaren: Notepad :-)
XAML - eXtensible Application Markup Language, som är namnet på UI beskrivningsformatet, är deklarativt och XML baserat.
Här bör noteras att både Cider och Expression Blend fortfarande är i utvecklingsstadiet, av dessa verkar den senare vara närmare en färdig produkt.
Dessutom verkar Expression serien vara så pass riktade mot designers att dom inte tillhandahålls via MSDN licens...
Dessutom så bör noteras att ifall du sitter på en Express version av Visual Studio, så funkar inte den visuella designern där. Dock går det helt bra ändå, demo applikationerna för artikelserien har utvecklas i Visual C# Express.
Microsoft har dock lovat att fixa så att designern går att använda även i Expressversionerna...
Ok, tillräckligt med torrt prat, visa screenshottar nu då redan! Kanske du tänker, och även ifall du inte tänkte det så kommer här ett par bilder på WPF chatt klienten vi snart skall se på.
Startrutan:
Rätt simpel (och tråkig) startruta
Huvudfönstret:
Huvudfönstret med en del visuella effekter, t.ex. speglingen och klockorna.
Huvudfönster med "bad language":
Vi märker ut "bad language" med hjälp av en datatrigger
"Mamma, se vad jag kan.." mouseover effekt:
Enbart "för att det går" har så animerar Send knappen en 180 graders rotation
vid MouseEnter, samt tillbaka MouseLeave
Vi dyker rakt ner i koden börjandes från "entrypointen" App.xaml. En WPF UI fil består oftast av en .xaml fil som innehåller den deklarativa definitionen av UI:t, samt en codebehind fil .xaml.cs för behövlig kod.
Ovanstående App.xaml innehåller egentligen inget speciellt men indikerar att vårt huvudfönster finns i "MainForm.xaml".
Dessutom så har vi definierat en applikationsresurs, en stilmall som säger att alla knappar i applikationen (om det inte sägs explicit sägs nåt annat) skall använda sej av rosa Comic Sans text. (Fint va?)
Codebehind filen innehåller inte speciellt mycket..
Massa kod och bilder har en tendens att bli långt, så vi tar en paus här, och fortsätter i nästa del av serien.
Den fullständiga källkoden till fallstudien kommer att laddas upp till programarkivet när artikelserien avslutas.
Frågor, kommentarer mottas tacksamt!
Vad är WPF?
WPF är nästa generations user interface teknologi från Microsoft, efterföljaren till WinForms (samt delvis också ASP.NET).Några egenskaper (i ingen speciell ordning):
- Vektorbaserat
- Gott stöd för databinding
- 2D och 3D grafik kan användas efter behov samt även blandas.
- Stilar och mallar (tänk CSS på steroider)
- Triggers och animeringar
- Separation av utseende och logik (en designer kan jobba med utseendet, medan en utvecklare kan jobba med logiken bakom, parallellt)
- Kommandon
- ...
Scope
Eftersom ämnet WPF är stort och räcker till att fylla ut böcker, så kommer denna artikel inte att vara en grundkurs i egentlig mening, utan snarare en demonstration av en del grejer man kan åstadkomma med WPF. Som kuriosa kan nämnas att Charles Petzolds opus Applications=Code+Markup om ämnet går på nästan 1000 sidor
Utvecklingsverktyg
Mikrosoft tillhandahåller ett par olika utvecklingsverktyg, ämnade för olika målgrupper:- Utvecklaren - Cider, designern i Visual Studio (version "2005++").
- Designern - Expression Blend (f.d. Expression Interactive Designer, f.d. Sparkle)
Eller för den masokistiska utvecklaren: Notepad :-)
XAML - eXtensible Application Markup Language, som är namnet på UI beskrivningsformatet, är deklarativt och XML baserat.
Dessutom verkar Expression serien vara så pass riktade mot designers att dom inte tillhandahålls via MSDN licens...
Dessutom så bör noteras att ifall du sitter på en Express version av Visual Studio, så funkar inte den visuella designern där. Dock går det helt bra ändå, demo applikationerna för artikelserien har utvecklas i Visual C# Express.
Microsoft har dock lovat att fixa så att designern går att använda även i Expressversionerna...
Show us the pics!
Ok, tillräckligt med torrt prat, visa screenshottar nu då redan! Kanske du tänker, och även ifall du inte tänkte det så kommer här ett par bilder på WPF chatt klienten vi snart skall se på.Startrutan:
Rätt simpel (och tråkig) startruta
Huvudfönstret:
Huvudfönstret med en del visuella effekter, t.ex. speglingen och klockorna.
Huvudfönster med "bad language":
Vi märker ut "bad language" med hjälp av en datatrigger
"Mamma, se vad jag kan.." mouseover effekt:
Enbart "för att det går" har så animerar Send knappen en 180 graders rotation
vid MouseEnter, samt tillbaka MouseLeave
Vi dyker in...
Vi dyker rakt ner i koden börjandes från "entrypointen" App.xaml. En WPF UI fil består oftast av en .xaml fil som innehåller den deklarativa definitionen av UI:t, samt en codebehind fil .xaml.cs för behövlig kod.
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainForm.xaml"
>
Ovanstående App.xaml innehåller egentligen inget speciellt men indikerar att vårt huvudfönster finns i "MainForm.xaml".
Dessutom så har vi definierat en applikationsresurs, en stilmall som säger att alla knappar i applikationen (om det inte sägs explicit sägs nåt annat) skall använda sej av rosa Comic Sans text. (Fint va?)
Codebehind filen innehåller inte speciellt mycket..
using System;
namespace LemonDesign.Chat.Client {
///
/// Interaction logic for App.xaml
///
public partial class App : System.Windows.Application {
}
}
Massa kod och bilder har en tendens att bli långt, så vi tar en paus här, och fortsätter i nästa del av serien.
Den fullständiga källkoden till fallstudien kommer att laddas upp till programarkivet när artikelserien avslutas.
Frågor, kommentarer mottas tacksamt!
0 Kommentarer