public void InitializeOnceAtStartup(MainNavigationWindow navigator, Tutorial05FlickGestureTrainingPageModel viewModel) { Trace.Assert(navigator != null); Trace.Assert(viewModel != null); this.DataContext = viewModel; ReferenceToTutorialEachPageModelBase = viewModel; ReplayPracticeNextButtonsUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); TutorialAppHeaderMenuUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); refToViewModel = viewModel; InitializeScrollArea(); this.Loaded += (sender, e) => { navigator.SetWindowFullScreen(); navigator.Title = $"{ApplicationCommonSettings.HostApplicationName} Tutorial: Flick Gesture Practice"; viewModel.OnLoaded(); }; this.Unloaded += (sender, e) => { viewModel.IsCancelling = true; }; }
public void InitializeOnceAtStartup(MainNavigationWindow navigator, ZkooTutorialModel appModel) { Trace.Assert(navigator != null); Trace.Assert(appModel != null); refToNavigator = navigator; refToAppModel = appModel; this.DataContext = refToAppModel; ReplayPracticeNextButtonsUserControl.InitializeOnceAtStartup(appModel.TutorialAppHeaderMenu); TutorialAppHeaderMenuUserControl.InitializeOnceAtStartup(appModel.TutorialAppHeaderMenu); this.PreviewMouseMove += (sender, e) => { MouseCursorPositionY = (int)e.GetPosition(this).Y; UpdateAppHeaderMenuVisibility(); }; TutorialAppHeaderMenuUserControl.MouseEnter += (sender, e) => { IsMouseHoveredOnTutorialAppHeaderMenuUserControl = true; UpdateAppHeaderMenuVisibility(); }; TutorialAppHeaderMenuUserControl.MouseLeave += (sender, e) => { IsMouseHoveredOnTutorialAppHeaderMenuUserControl = false; UpdateAppHeaderMenuVisibility(); }; videoPlayingUserControl.IsPlayingChanged += (sender, e) => { UpdateAppHeaderMenuVisibility(); ReplayPracticeNextButtonsUserControl.Visibility = videoPlayingUserControl.IsPlaying ? Visibility.Collapsed : Visibility.Visible; }; this.Loaded += (sender, e) => { // NOTE: This does not change device settings and so on. // NOTE: Called from asynchronous Task.Run() called from each Page's Loaded event. refToNavigator.Title = this.PageTitle; refToNavigator.SetWindowFullScreen(); refToAppModel.EnableUpdatingCameraViewImageButHideWindow(); videoPlayingUserControl.SetMediaElementSourceUriByFilePath(Path.Combine(refToAppModel.CurrentResources.TutorialVideoFilesFolderPath, VideoFileNameWithoutDirectory), UriKind.Relative); videoPlayingUserControl.Replay(); }; }
public void InitializeOnceAtStartup(MainNavigationWindow navigator, Tutorial02MoveCursorTrainingPageModel viewModel) { Trace.Assert(navigator != null); Trace.Assert(viewModel != null); // ---------- videos and state transition ---------- PracticeSlideShow01VideoUserControl.SetMediaElementSourceUriByFilePath(System.IO.Path.Combine(viewModel.refToAppModel.CurrentResources.TutorialVideoFilesFolderPath, "tutorial_reference_video_2.mp4"), UriKind.Relative); PracticeSlideShow01VideoUserControl.IsVisibleChanged += (sender, e) => { if (PracticeSlideShow01VideoUserControl.IsVisible) { PracticeSlideShow01VideoUserControl.Replay(); } else { PracticeSlideShow01VideoUserControl.Pause(); } }; // ---------- videos and state transition ---------- this.DataContext = viewModel; ReferenceToTutorialEachPageModelBase = viewModel; ReplayPracticeNextButtonsUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); TutorialAppHeaderMenuUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); LargeCircleAreaRightTop.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonRightTop); LargeCircleAreaRightBottom.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonRightBottom); LargeCircleAreaLeftBottom.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonLeftBottom); LargeCircleAreaLeftTop.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonLeftTop); this.Loaded += (sender, e) => { navigator.SetWindowFullScreen(); navigator.Title = $"{ApplicationCommonSettings.HostApplicationName} Tutorial: Move Cursor Practice"; viewModel.OnLoaded(); PracticeSlideShow01VideoUserControl.Replay(); }; this.Unloaded += (sender, e) => { viewModel.IsCancelling = true; }; }
public void InitializeOnceAtStartup(MainNavigationWindow navigator, Tutorial04DragGestureTrainingPageModel viewModel) { Trace.Assert(navigator != null); Trace.Assert(viewModel != null); // ---------- videos and state transition ---------- PracticeSlideShow01VideoUserControl.SetMediaElementSourceUriByFilePath(System.IO.Path.Combine(viewModel.refToAppModel.CurrentResources.TutorialVideoFilesFolderPath, "tutorial_reference_video_4.mp4"), UriKind.Relative); PracticeSlideShow01VideoUserControl.IsVisibleChanged += (sender, e) => { if (PracticeSlideShow01VideoUserControl.IsVisible) { PracticeSlideShow01VideoUserControl.Replay(); } else { PracticeSlideShow01VideoUserControl.Pause(); } }; // ---------- videos and state transition ---------- this.DataContext = viewModel; ReferenceToTutorialEachPageModelBase = viewModel; ReplayPracticeNextButtonsUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); TutorialAppHeaderMenuUserControl.InitializeOnceAtStartup(viewModel.TutorialAppHeaderMenu); LargeCircleAreaRightTop.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonRightTop); LargeCircleAreaRightBottom.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonRightBottom); LargeCircleAreaLeftBottom.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonLeftBottom); LargeCircleAreaLeftTop.InitializeOnceAtStartup(viewModel.TutorialLargeCircleAreaButtonLeftTop); var corners = new FrameworkElement[] { LargeCircleAreaRightTop, LargeCircleAreaRightBottom, LargeCircleAreaLeftBottom, LargeCircleAreaLeftTop }; var corner_Index_Dict = new Dictionary <object, int>(); for (int i = 0; i < corners.Length; i++) { var corner = corners[i]; corner_Index_Dict[corner] = i; } this.Loaded += (sender, e) => { navigator.SetWindowFullScreen(); navigator.Title = $"{ApplicationCommonSettings.HostApplicationName} Tutorial: Drag Gesture Practice"; viewModel.OnLoaded(); PracticeSlideShow01VideoUserControl.Replay(); }; this.Unloaded += (sender, e) => { viewModel.IsCancelling = true; }; DraggingThumb.MouseEnter += (sender, e) => { viewModel.IsDraggingThumbHovered = true; }; DraggingThumb.MouseLeave += (sender, e) => { viewModel.IsDraggingThumbHovered = false; }; DraggingThumb.DragStarted += (sender, e) => { viewModel.IsDraggingThumbDragging = true; }; DraggingThumb.DragCompleted += (sender, e) => { var thumbRadius = DraggingThumb.ActualWidth / 2; var thumbCenterRelativePoint = new Point(thumbRadius, thumbRadius); viewModel.DraggingThumbCenterPoint = DraggingThumb.PointToScreen(thumbCenterRelativePoint); foreach (var corner in corners) { var index = corner_Index_Dict[corner]; var cornerRadius = corner.ActualWidth / 2; var cornerCenterRelativePoint = new Point(cornerRadius, cornerRadius); viewModel.LargeCircleAreaCenterPoint[index] = corner.PointToScreen(cornerCenterRelativePoint); var diffVector = (viewModel.LargeCircleAreaCenterPoint[index] - viewModel.DraggingThumbCenterPoint); var distance = diffVector.Length; viewModel.ThumbToLargeCircleAreaCenterDistanceList[index] = distance; viewModel.TutorialLargeCircleAreaButtonList[index].IsThumbDragged = (distance + thumbRadius < cornerRadius); } viewModel.IsDraggingThumbDragging = false; }; }