###BeginCaseStudy###
Case Study: 2
Scenario 2
Background
You are developing a Windows Store app named Picture Sharer. The app will allow users to
capture, modify, caption, and share pictures.
Application Structure
The SharelmageButton and GetContactsButton controls use the same foreground color. The
foreground color might change in the future.
The following code defines a custom button style named ButtonStyleRed:
<Style TargecType="Buccon" x:Key="ButconScyleRed">
<Setcer Property="Foreground" Value="#FFC34343,'/>
<Setter Property—'Border3rushn Value—,#FFC34343"/>
…
</Style>
Relevant portions of the app files are shown. (Line numbers are included for reference only
and include a two-character prefix that denotes the specific file to which they belong.)
Business Requirements
The app must meet the following business requirements:
• Allow users to capture and retrieve pictures, modify pictures by adding a shading
effect, and add captions to images.
• Support only Landscape and Landscape-flipped orientations.
• Ensure that users can select and modify imaqes from the PictureChooserPaqe page.
• Ensure that users can change the magnification of the selected image and resize the
image by using pinch and stretch gestures. Scaling should be fluid and precisely
controlled by the user.
The app must be localized for the French Canadian market.
Technical Requirements
The app must meet the following technical requirements:
• Scroll bars must not be visible.
• The CaptionTextBlock and CaptionTextBox controls must appear side by side,
without overlapping and on the same line. The CaptionTextBox control should
appear to the right of the CaptionTextBlock control.
• The ContactPicker object must be filtered to display only email addresses.
• Minimize the code that is required to implement optical zoom functionality.
You must perform the following tasks:
• Handle the Click event of the GetPictureButton control to switch from the current
page to the PictureChooserPage page.
• After the user selects an image on the PictureChooserPage page, ensure that the app
navigates back to the PictureSharerMainPage page.
• Track the current screen orientation and page size by updating the
_currentViewState, _currentHeight, and _currentWidth fields every time the screen
orientation or page size changes.
• Create a style named ButtonStyleWhite that inherits all the style settings of the
ButtonStyleRed style except the border color; the border color must be white. The
ButtonStyleWhite style must automatically update with any changes that are made
to the ButtonStyleRed style.
• Create a resource named ButtonForegroundColor to implement the button
foreground color so that it can be referenced in XAML by using the following
standard syntax: Foreground-“{StaticResourceButtonForegroundColor}”
• Ensure that the OnNavigatedTo() method updates the current picture when a new
picture is selected.
• Change the background for the root Grid element to a vertical gradient that
transitions from black at the top to maroon at the bottom. Create a resource named
GridBackgroundGradientBrush to hold the requested gradient.
• While testing the app, you observe the following results:
• An exception is being thrown in the GetContactsCompleted event handler when the
retrieved email address is assigned to the RecipientsTextBlock control. The exception
message states: “The application called an interface that was marshalled for a
different thread.”
• When users navigate away from the PictureSharerMainPage page, information that
was entered in the CaptionTextBox control is lost.
PictureSharerMainPage.xaml
###EndCaseStudy###
You need to retain the data that is entered in the TextBox control when the user navigates
away from the PictureSharerMainPage page.
Which code segment should you insert at line CS08?
A.
Option A
B.
Option B
C.
Option C
D.
Option D
Explanation:
* NavigationCacheMode
Specifies caching characteristics for a page involved in a navigation.
* NavigationCacheMode.Required
The page is cached and the cached instance is reused for every visit regardless of the cache
size for the frame.
I think, the option D would be better than option B.
B.Required: The page is cached and the cached instance is reused for every visit regardless of the cache size for the frame.
D.Enabled: The page is cached, but the cached instance is discarded when the size of the cache for the frame is exceeded.
¬¬ jeje i just see ‘this.NavigationCache’ in the option D, so… it’s wrong.