private TutorialTooltipPositionTracker MakeTooltipPositioner(Window rootWindow, Control tooltip, FrameworkElement element) { TutorialTooltipPositionTracker positioner = new TutorialTooltipPositionTracker(rootWindow, element); tooltip.RenderTransformOrigin = new Point(0.0, 0.0); tooltip.IsVisibleChanged += (o, e) => positioner.EnableChangeHooks(element.IsVisible); tooltip.RenderTransform = new TranslateTransform(); return(positioner); }
public void SetTooltipControls(Window rootWindow, FrameworkElement searchMenuButton, FrameworkElement compassButton, FrameworkElement floorSliderButton, FrameworkElement exitButton) { Dictionary <string, FrameworkElement> elementForDialog = new Dictionary <string, FrameworkElement> { { SearchMenuDialogName, searchMenuButton }, { LocateMeDialogName, compassButton }, { ElevatorDialogName, floorSliderButton }, { ExitDialogName, exitButton } }; foreach (var dialog in m_dialogs) { TutorialTooltipPositionTracker positioner = MakeTooltipPositioner(rootWindow, dialog.Value.Dialog, elementForDialog[dialog.Key]); positioner.OnUpdateTransform += dialog.Value.DialogPosition; m_positioners.Add(dialog.Key, positioner); } }
public override void OnApplyTemplate() { base.OnApplyTemplate(); TutorialTooltipView mapModeDialog = (TutorialTooltipView)GetTemplateChild(MapModeDialogName); m_positionedMapModeDialog = new PositionedDialog(mapModeDialog, (x, y, w, h) => { ((TranslateTransform)mapModeDialog.RenderTransform).X = x - mapModeDialog.GetTooltipWidth() - DialogGap; ((TranslateTransform)mapModeDialog.RenderTransform).Y = y + 2; }); FlattenButtonView flattenButtonView = ViewHelpers.FindChildrenOfType <FlattenButtonView>(m_mainWindow.MainGrid.Children).Single(); m_mapModePositionTracker = new TutorialTooltipPositionTracker(m_mainWindow, flattenButtonView); m_mapModePositionTracker.OnUpdateTransform += m_positionedMapModeDialog.DialogPosition; mapModeDialog.RenderTransformOrigin = new Point(0.0, 0.0); mapModeDialog.RenderTransform = new TranslateTransform(); TutorialTooltipView dropPinDialog = (TutorialTooltipView)GetTemplateChild(DropPinDialogName); m_positionedDropPinDialog = new PositionedDialog(dropPinDialog, (x, y, w, h) => { ((TranslateTransform)dropPinDialog.RenderTransform).X = x + w + dropPinDialog.ArrowPointHeight + DialogGap; ((TranslateTransform)dropPinDialog.RenderTransform).Y = y - (dropPinDialog.GetTooltipHeight() - h) - 2; }); MyPinCreationButtonView myPinCreationButtonView = ViewHelpers.FindChildrenOfType <MyPinCreationButtonView>(m_mainWindow.MainGrid.Children).Single(); m_dropPinPositionTracker = new TutorialTooltipPositionTracker(m_mainWindow, myPinCreationButtonView); m_dropPinPositionTracker.OnUpdateTransform += m_positionedDropPinDialog.DialogPosition; dropPinDialog.RenderTransformOrigin = new Point(0.0, 0.0); dropPinDialog.RenderTransform = new TranslateTransform(); m_showAnimation = (Storyboard)FindResource("ShowAnimation"); m_hideAnimation = ((Storyboard)FindResource("HideAnimation")).Clone(); m_hideAnimation.Completed += (o, e) => { m_hideAnimationRunning = false; Visibility = Visibility.Hidden; }; }