public DataSource() { //Windows Store Application // Welcome to CSG Pro // Meet the CSG Management Team // Where We Work // Learn Our History var group1 = new PitchItemGroup( "WindowsStoreApplication", "Windows Store Application"); var welcomeToCSGPro = new PitchItem( "WelcomeToCSGProLanding", "Welcome to CSG Pro", "Let us put a smile on your face. Learn more about CSG Pro.", null, null, "Assets/PhotoChick1.jpg", null, PageColorScheme.Dark, HomeTileLayout.ExtraWide, group1); group1.Items.Add(welcomeToCSGPro); this.AllItems.Add(welcomeToCSGPro); var meetTheTeam = new PitchItem( "MeetTheTeam", "Meet the CSG Management Team", parentPitchItem: welcomeToCSGPro); var whereWeWork = new PitchItem( "WhereWeWork", "Where We Work", colorScheme: PageColorScheme.Dark, parentPitchItem: welcomeToCSGPro); var learnOurHistory = new PitchItem( "LearnOurHistory", "Learn Our History", parentPitchItem: welcomeToCSGPro); var portlandiaVideo = new PitchItem( "PortlandiaVideo", "Portlandia Video", colorScheme: PageColorScheme.Dark, parentPitchItem: welcomeToCSGPro); this.AllItems.Add(meetTheTeam); this.AllItems.Add(whereWeWork); this.AllItems.Add(learnOurHistory); this.AllItems.Add(portlandiaVideo); var welcome = new PitchItem( "Welcome", "Welcome", "Welcome! We're glad you're here.", null, "We built you an app because we love the idea of putting Zappos.com on the Windows Store! What better way could we demonstrate our enthusiasm?\n\nThis application will guide you through the details of our overall approach and hopefully answer any questions you may have. We hope you enjoy the experience!", null, null, PageColorScheme.Light, HomeTileLayout.ExtraWideTextOnly, group1); group1.Items.Add(welcome); this.AllItems.Add(welcome); this.AllGroups.Add(group1); //More Information // About Our Approach // Project Management // Testing // Why C#/XAML? // Connect // Project Details // Requirements // Timeline // Microsoft Application Acceleration Program (MAAP) var group2 = new PitchItemGroup( "MoreInformation", "More Information"); var aboutCSGsApproach = new PitchItem( "AboutCSGsApproachLanding", "About CSG's Approach", "The gear we use. About CSG's approach.", null, null, "Assets/PhotoGear.jpg", null, PageColorScheme.Dark, HomeTileLayout.Standard, group2); group2.Items.Add(aboutCSGsApproach); this.AllItems.Add(aboutCSGsApproach); var whyCSharpXAML = new PitchItem( "WhyCSharpXAML", "Why C#/XAML?", parentPitchItem: aboutCSGsApproach); var projectManagement = new PitchItem( "ProjectManagement", "Project Management", parentPitchItem: aboutCSGsApproach); var testingMethods = new PitchItem( "TestingMethods", "Testing Methods", parentPitchItem: aboutCSGsApproach); this.AllItems.Add(projectManagement); this.AllItems.Add(testingMethods); this.AllItems.Add(whyCSharpXAML); var projectDetails = new PitchItem( "ProjectDetailsLanding", "Project Details", "Running resolutions. Check out the project details.", null, null, "Assets/PhotoRunning.jpg", null, PageColorScheme.Light, HomeTileLayout.Standard, group2); group2.Items.Add(projectDetails); this.AllItems.Add(projectDetails); var projectTimeline = new PitchItem( "ProjectTimeline", "Project Timeline", parentPitchItem: projectDetails); var technicalRequirements = new PitchItem( "TechnicalRequirements", "Technical Requirements", parentPitchItem: projectDetails); this.AllItems.Add(projectTimeline); this.AllItems.Add(technicalRequirements); var connect = new PitchItem( "ConnectLanding", "Connect", "We want to get to know you better. Connect with us!", null, null, "Assets/PhotoDude.jpg", null, PageColorScheme.Dark, HomeTileLayout.WideWithArrow, group2); group2.Items.Add(connect); this.AllItems.Add(connect); var maap = new PitchItem( "MicrosoftApplicationAccelerationProgram", "Microsoft Application Acceleration Program (MAAP)", "Learn about the Windows 8 Microsoft Application Acceleration Program (MAAP).", null, null, "Assets/PhotoChick2.jpg", null, PageColorScheme.Light, HomeTileLayout.WideWithArrow, group2); group2.Items.Add(maap); this.AllItems.Add(maap); this.AllGroups.Add(group2); }
private void BuildBreadcrumbMenu(PitchItem currentItem) { if (currentItem != null) { // if null, get the button style and breadcrumb arrow image if (_buttonStyle == null) { switch (currentItem.ColorScheme) { case Enums.PageColorScheme.Dark: _buttonStyle = (Style)App.Current.Resources["BreadcrumbMenuStyleDark"]; break; case Enums.PageColorScheme.Light: _buttonStyle = (Style)App.Current.Resources["BreadcrumbMenuStyleLight"]; break; default: throw new Exception("Unexpected PageColorScheme enum value: " + currentItem.ColorScheme.ToString()); } } if (_breadcrumbArrow == null) { switch (currentItem.ColorScheme) { case Enums.PageColorScheme.Dark: _breadcrumbArrow = (BitmapImage)App.Current.Resources["BreadcrumbMenuArrowSmallDark"]; break; case Enums.PageColorScheme.Light: _breadcrumbArrow = (BitmapImage)App.Current.Resources["BreadcrumbMenuArrowSmallLight"]; break; default: throw new Exception("Unexpected PageColorScheme enum value: " + currentItem.ColorScheme.ToString()); } } var pitchItem = currentItem; var firstItem = true; while (pitchItem != null) { var button = GetButton(pitchItem.PageTitle); // if this is the first item in the list (from right to left) // then hide the hit test // otherwise wire up a click handler if (firstItem) { button.IsHitTestVisible = false; } else { var pitchItemUniqueId = pitchItem.UniqueId; button.Click += (clickSender, clickEventArgs) => { NavigateToItemDetailPage(pitchItemUniqueId); }; } MenuItems.Children.Insert(0, button); // add separator arrow var arrowImage = new Image(); arrowImage.Source = _breadcrumbArrow; arrowImage.Stretch = Stretch.None; MenuItems.Children.Insert(0, arrowImage); // if we have a parent pitch item, then update the pitch item reference // otherwise we should have a reference to the top level group // which we can use to the build the left most button if (pitchItem.ParentPitchItem != null) { // set the pitch item to the parent pitch item pitchItem = pitchItem.ParentPitchItem; } else { // make sure that the last pitch has a group reference if (pitchItem.Group == null) throw new Exception("Any pitch item that does not have a parent pitch item, should have a reference to a group."); // setup the group button var groupButton = GetButton("Home"); groupButton.Click += (clickSender, clickEventArgs) => { NavigateToHomePage(); }; MenuItems.Children.Insert(0, groupButton); // set the pitch item to null (to break out of the loop) pitchItem = null; } // update the first item flag firstItem = false; } } else { MenuItems.Children.Clear(); } }
public PitchItem(string uniqueId, string pageTitle, string title = null, string subtitle = null, string description = null, string imagePath = null, string content = null, PageColorScheme colorScheme = PageColorScheme.Light, HomeTileLayout layout = HomeTileLayout.Standard, PitchItemGroup group = null, PitchItem parentPitchItem = null) : base(uniqueId, title, subtitle, description, imagePath) { this._pageTitle = pageTitle; this._content = content; this._colorScheme = colorScheme; this._layout = layout; this._group = group; this._parentPitchItem = parentPitchItem; }