Lecture slides

6 downloads 110 Views 218KB Size Report
1. Introduction to C#, Visual. Studio and Windows. Presentation Foundation. Lecture #3: C#, Visual Studio, and WPF. Fall 2010. CAP 6105 – Pen-Based User  ...
Introduction to C#, Visual Studio and Windows Presentation Foundation Lecture #3: C#, Visual Studio, and WPF Joseph J. LaViola Jr. Fall 2010

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

C# 

Combination of C++ and Java   

no pointer i t manipulation i l ti built in data structures – Lists, Hash tables some higher level constructs 

  



Fall 2010

foreach

C# not difficult .NET NET high hi h llearning i curve Intellisense makes things much easier

Quick C# Reference CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

1

Visual Studio 2008 Good IDE



 

debugging d b i intellisense

Handles WPF well Visual UI designer

 



Fall 2010

Integrates g with XAML

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

Windows Presentation Foundation (WPF)  

Latest UI development platform from MSFT Integration of    



www.markmywords.org

Declarative/Procedural programming model  



INK!!!! 2D graphics 3D graphics video/audio/animation

XAML C#/Visual Basic/etc…

Uses retained mode 

implies scenegraph blogs.msdn.com/mgrayson/

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

2

WPF Features and Machinery 

Control library   



Layout panels  



canvas, stack, wrap, doc panels grid – most flexible

Actions   



buttons, sliders, menus, toolbars tool tips, popups, scroll bars, etc… user defined as well

events commands triggers

Styles, skins, themes, templates

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

Logical and Visual Trees in WPF 



UIs are constructed from a tree of objects (logical tree) Visual tree expands logical tree  

nodes broken down into visual components not all logical tree nodes appear in visual tree  

Fall 2010

System.Windows.Media.Visual System.Windows.Media.Visual3D

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

3

Extensible Application Markup Language (XAML)   

Set of semantics on top of XML Tags always defined in context namespace Easy to read like and write   

 

IIndependent d d t off WPF Ideal for rapid UI prototyping 

Fall 2010

a.k.a. HTML declarative want to integrate graphic designers

set up UI then write procedural code

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

WPF Example – Button ld'> Howdy!

Examples adapted from Essential Windows Presentation Foundation by Chris Anderson, Addison Wesley, 2007.

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

4

WPF Example – Stack Panel Howdy! A second button

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

WPF Example – More Controls Howdy! A second button An editable text box A check box

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

5

WPF Example – Wrap Layout Howdy! A second button An editable text box A check box

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

WPF Example – Events

Fall 2010

... ...

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

Triggers  

Designed for markup Signaled by  

state of a display property (Trigger) state of a data property (DataTrigger) 



 

Fall 2010

used only within a data template

an event (EventTrigger)

Cause set of actions when signaled MultiTrigger and MultiDataTrigger

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

10

Event Trigger Example g y

Fall 2010

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

Readings 

WPF Recipies in C# by Noble,Bourton, and Jones 

Fall 2010

Chapters 1-4

CAP 6105 – Pen-Based User Interfaces

©Joseph J. LaViola Jr.

11