O'Reilly logo

Getting Started with .NET Gadgeteer by Simon Monk

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

WPFWindow

This example is fine, but we need to be able to display a little more than just the last image captured by the camera. We need to be able to display messages, such as what the interval is set to, and a message if there is an error writing to the SD card.

To accommodate this message area, we need to abandon our SimpleGraphics interface to the display and use something called WPFWindow.

WPFWindow is a class that allows us to structure the screen into various different areas. In this case, the whole screen as one area to display the image, and a small area near the top of the screen, where sometimes a message will appear.

We are going to modify the “Spy Camera Test” project to display a little notification at the top of the screen whenever a photo is taken.

This program is now over 100 lines long, so you will probably want to open the “Spy Camera Test” project now.

Creating a UI Structure

The biggest change to the project is the way the display is used. This is all contained in a new method called SetupUI (UI for User Interface). This method would normally appear in the code just after ProgramStarted:

void SetupUI() { mainWindow = display.WPFWindow; // setup the layout Canvas layout = new Canvas(); Border background = new Border(); background.Background = new SolidColorBrush(Colors.Black); background.Height = 240; background.Width = 320; layout.Children.Add(background); Canvas.SetLeft(background, 0); Canvas.SetTop(background, 0); // add the image display imageDisplay = new Border(); ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required