10262A_10 - See So Clear

advertisement
Module 10
WPF 2-D Graphics,
Multimedia, and Printing
Module Overview
• Creating 2-D Graphics
• Displaying Images
• Adding Multimedia
• Creating and Printing Documents
Lesson 1: Creating 2-D Graphics
• 2-D Graphics Support in WPF
• Drawing Shapes
• What Are Paths and Geometries?
• Demonstration: Filling Shapes and Geometries
• Demonstration: Using and Animating Transformations
2-D Graphics Support in WPF
Shapes
Ellipse
Rectangle
Geometry
Ellipse
Line
Path
Brush
Pen
Drawing Shapes
Defined using Height and Width properties
<Rectangle Height="50" Width="100" />
<Ellipse Height="50" Width="100" />
Defined using two points
<Line X1="10" Y1="10" X2="50" Y2="50" />
What Are Paths and Geometries?
Paths are defined by geometries, which are made up of figures
and segments
<Path ...
<PathGeometry>
...
<PathFigureCollection>
...
<!-- A Triangle. -->
<LineSegment Point="10, 300" />
<LineSegment Point="200, 200" />
Demonstration: Filling Shapes and Geometries
In this demonstration, you will see how to:
• Define an Ellipse shape and a Rectangle shape
• Define values for the Stroke and Fill properties
• Create a triangle by using the Path class
Demonstration: Using and Animating Transformations
In this demonstration, you will see how to:
• Add layout and render transformations to a Shape
element
• Animate the transformation objects
Lesson 2: Displaying Images
• WPF Imaging Components
• Demonstration: Displaying Images in WPF
• Encoding and Decoding Images
• Rotating, Converting, and Cropping Images
WPF Imaging Components
WPF introduces a new API for working with images:
• Image
• ImageBrush
• ImageDrawing
WPF supports most popular imaging formats including:
• Bitmap (BMP)
• JPEG
• Portable Network Graphics (PNG)
• Graphics Interchange Format (GIF)
• Windows Media Photo (WMP)
Demonstration: Displaying Images in WPF
In this demonstration, you will see how to:
• Display an image by using the Image control
• Display an image as a brush by using the ImageBrush
class
• Display an image as a drawing by using the
ImageDrawing class
Encoding and Decoding Images
Decode
Encode
BitmapDecoder
BitmapEncoder
Rotating, Converting, and Cropping Images
To rotate an image:
• Set the Rotation property on a BitmapImage class
To convert an image to a different pixel format:
• Use FormatConvertedBitmap
To crop an image:
• Set the Clip property of an Image class or use CroppedBitmap
Lesson 3: Adding Multimedia
• WPF Support for Multimedia
• Media Playback Modes
• Displaying Media by Using a MediaElement Control
• Controlling the Operation of a MediaElement Control
• Playing Media by Using a MediaPlayer Object
WPF Support for Multimedia
WPF supports the playback of audio and video media by
using:
• A MediaElement control
• A MediaPlayer object
Sound
Video
Media Playback Modes
Set the Clock property on MediaElement and
MediaPlayer to specify the media playback mode
• Independent mode
• Clock mode
Displaying Media by Using a MediaElement Control
To play media by using a MediaElement control:
<StackPanel ... >
<MediaElement Source="videos\bear.wmv" />
</StackPanel>
Controlling the Operation of a MediaElement Control
Control how the MediaElement control behaves by using:
• LoadedBehavior
• UnloadedBehavior
Control playback through the MediaElement control by
using the playback methods:
• Play
• Pause
• Stop
• Close
Playing Media by Using a MediaPlayer Object
MediaPlayer is designed to be used with drawing
objects
<VideoDrawing x:Name="videoSurface"
Rect="0,0,300,200" />
XAML
MediaPlayer player = new MediaPlayer();
player.Open(new Uri(@"videos\bear.wmv"));
this.videoSurface.Player = player;
player.Play();
C#
Lesson 4: Creating and Printing Documents
• What Are Fixed and Flow Documents?
• Defining Fixed and Flow Documents
• Viewing Fixed and Flow Documents
• What Is the XML Paper Specification?
• Demonstration: Printing Documents
• Controlling Print Jobs
• Managing the Print Queue
What Are Fixed and Flow Documents?
Fixed Documents:
• Are static, read-only, portable
documents
• Provide WYSIWYG presentation
• Are independent of the display
or printer hardware
Flow Documents:
• Are a XAML construct for
holding large blocks of textual
data
• Provide an optimized viewing
and reading experience
• Dynamically adjust and reflow
content
• Provide additional viewing
features:
• Searching
• Navigation
• Zooming
Defining Fixed and Flow Documents
<FixedDocument>
<PageContent>
<FixedPage>
<TextBlock
Text="This is a fixed document." />
<FlowDocument>
<Paragraph>
This is a paragraph.
</Paragraph>
<Paragraph>
<Italic>This</Italic> is <Bold>another</Bold>
paragraph. This paragraph has more formatting
<Span FontFamily="Lucida Handwriting">than
the first</Span>.
</Paragraph>
</FlowDocument>
Viewing Fixed and Flow Documents
Fixed documents:
Flow documents:
• Use a DocumentViewer control
• FlowDocumentReader
• Set the Document property of
the control to the
FixedDocument instance
• FlowDocumentPageViewer
and
FlowDocumentScrollViewer
• RichTextBox
Zoom
Search
Viewing Mode
Search
Navigation
Zoom
Viewing Mode
What Is the XML Paper Specification?
An XPS document:
• Is a package that contains one or more fixed documents
• Contains resources and information required for rendering:
• Fonts (OpenType and TrueType)
• Images (TIFF, PNG, JPEG, and HD Photo for bitmaps)
• Application data
Demonstration: Printing Documents
In this demonstration, you will see how to:
• Create a PrintDialog dialog box and return a PrintQueue
instance
• Create an XpsDocumentWriter instance
• Write the document to a PrintQueue instance by using
the XpsDocumentWriter class
Controlling Print Jobs
To query printer capabilities:
• Get a PrintCapabilities object for the printer
• Query properties on the PrintCapabilities object
To instruct a printer how to process a print job:
• Get a PrintTicket object for the printer
• Configure properties on the PrintTicket object by using
information about the printer capabilities
Managing the Print Queue
To manage jobs on a print queue:
• Create a PrintServer object representing the print server
• Create a PrintQueue object representing the print queue
• Query the status of the queue
• Query the queue for a list of jobs pending
• Invoke methods on the PrintSystemJobInfo class to:
• Add
• Pause
• Resume
• Purge
Lab: Drawing 2-D Graphics
• Exercise 1: Choosing the Appropriate Windows Client
Technology
• Exercise 2: Creating the Data Access Layer and User
Interface
• Exercise 3: Drawing Shapes, Painting with Brushes, and
Applying Effects
• Exercise 4: Adding Images
Logon information
Virtual machine
10262A-GEN-DEV
User name
Student
Password
Pa$$w0rd
Estimated time: 45 minutes
Lab Scenario
You have been asked to create a new control for the
Product Inventory system, which is a Windows Forms
application. The control that you have been asked to
develop visually graphs the transaction history of any
inventory item provided. The control requires a great deal
of graphical rendering; therefore, you need to choose the
correct design and platform for a proof-of-concept
application.
Lab Review
Review Questions
• How do you use a single repeating image as the
background of a UI element?
• Which control enables you to add an image to the UI?
Module Review and Takeaways
• Review Questions
• Common Issues and Troubleshooting Tips
• Best Practices
Download