CSS 590: Machine Problem #1

Development Environment + Simple GUI Objects

 

Due time: Please refer to our course web-site

 

 

Objective

IDE and project/solution familiarization, and simple GUI Elements and elementary event services.

 

 

Specification

Here is an example implementation of this app. You can implement anything for your app, except, you must support the following features:

 

 

Project and Source Code Settings:

·         Solution name: create your solution with your FirstLastname.sln

·         Project (file) name: Your project name (including the containing folder and the project file name) should be: MyMP1 and MyMP1.csproj

·         Default Application name: instead of the default App, you shall rename the default application and all associated files names to be MyExcellentMP1.

·         Name of first page: Instead of the default MainPage, you shall rename the class and all associated files names to be FrontPage.

·         NameSpace: change the name space (and the default name space) to:  DefaultNamespace

 

 

Deployment/Application Settings:

·         .xap file name: FirstLastNameMP1.xap: e.g.: KelvinSungMP1.xap

·         Deployment options:

o    Title: FirstName.LastInitial.MP1. E.g., KelvinS.MP1

o    Picture: of yourself, or some custom picture

·         Tile Options:

o    Title: FunMP1

o    Picture: of something interesting but different from the App picture

 

App behavior:

o    Support Phone Orientation: your main page will display some interesting app and page title. These titles will respect and react to phone orientation accordingly.

o    You will have a text label centered at the content canvas telling your user what is the current orientation: PortraitUp, LandscapeLeft, or LandscapeRight.

 

o    Four sets of: (draw object + Label): one in each of the top-left (TL), top-right (TR), bottom-left (BL), and bottom-right (BR) corners.

o    The “draw object” can be a circle, ellipse, rectangle, or even image (how?), with different colors (Hint: look at Fill property)

o    Each “draw object” will always occupy their respective corners on the phone. Independent from the phone’s orientation. Hint: alignments to left/right/top/bottom.

o    The labels should move with the shapes staying in fix relatively positions with respective to the shape.

o    Hint: working with ExpressionBlend can make life much simpler. Be careful, in ExpressionBlend, when you move an item interactively, it may decide to change your alignment parameter. Pay attention!

 

o    Echo:

o    Size of Content Panel in a label right under the TL draw object. Hint: Serve the SizeChange event.

o    Current orientation string.

 

 

Credit Distribution:

1.        

Project/Source Settings

 

15%

 

a.       Solution name: FirstLastName

b.       Solution file name: FirstLastName.sln

c.        Project folder/name: MyMP1

d.       Project filename: MyMP1.csproj

e.        Default App class: MyExcellentMP1

f.        Name of main page: FrontPage

g.        Default namespace: DefaultNamespace

3%

3%

3%

3%

3%

3%

3%

 

2.   

Deployment/Application Settings

 

15%

 

 

 

 

a.       .xap file name: FirstLastNameEX1.xap

b.       App name/image on the phone:

c.        App name/image pinned on front

 

3%
7%

7%

3.   

Orientation support

 

15%

 

a.       Titles updates correctly

b.       Proper string echo

10%

5%

 

4.   

Draw object + Labels

 

30%

 

a.       4 sets of draw objects and labels

b.       Draw objects sticks to corresponding corners

c.        Label centered at the corresponding draw object

 

10%

10%

10%

5.   

Report Content Panel Size

5%

5%

a.       Proper centered aligned orientation echo string

b.       Panel dimension string under TL

 

 

6.   

Softcopy submission requirement

 

20%

a.       Zip file with all source code

b.       Proper zip file name

c.        Removed all useless files: Bin, obj, .cache, .user

 

 

 

 

This mp counts 5% towards the grade for this class.

 

Reminder: if you encounter strange error, please refer to course lecture notes from week1!!