private void SwitchPresenter_Loaded(object sender, RoutedEventArgs e) { if (_switchRoot == null) { this.SwitchParent = VisualTreeHelperEx.FindAncestorByType(this, typeof(SwitchPanel), false) as SwitchPanel; } }
private static void OnIDChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if ((e.NewValue == null) || !(d is UIElement)) { return; } SwitchPresenter parentPresenter = VisualTreeHelperEx.FindAncestorByType <SwitchPresenter>(d); if (parentPresenter != null) { parentPresenter.RegisterID(e.NewValue as string, d as FrameworkElement); } else { d.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, (ThreadStart) delegate() { parentPresenter = VisualTreeHelperEx.FindAncestorByType <SwitchPresenter>(d); if (parentPresenter != null) { parentPresenter.RegisterID(e.NewValue as string, d as FrameworkElement); } }); } }
Rectangle GetPreviewWindowRect() { var parentWindow = VisualTreeHelperEx.FindAncestorByType <Window>(this); var relativePt = PreviewTarget.TranslatePoint(new System.Windows.Point(0, 0), parentWindow); var rect = new RectangleF((float)relativePt.X, (float)relativePt.Y, (float)PreviewTarget.ActualWidth, (float)PreviewTarget.ActualHeight); // Maintain Aspect Ratio if (_webcamModel.WebcamCapture != null) { float w = _webcamModel.WebcamCapture.Width; float h = _webcamModel.WebcamCapture.Height; var imgWbyH = w / h; var frameWbyH = rect.Width / rect.Height; if (imgWbyH > frameWbyH) { var newH = rect.Width / imgWbyH; rect.Y += (rect.Height - newH) / 2; rect.Height = newH; } else { var newW = rect.Height * imgWbyH; rect.X += (rect.Width - newW) / 2; rect.Width = newW; } } return(rect.ApplyDpi()); }
private static void OnLoaded(object sender, RoutedEventArgs e) { SwitchPresenter sp = sender as SwitchPresenter; if (sp._switchRoot == null) { sp.SwitchParent = VisualTreeHelperEx.FindAncestorByType(sp, typeof(SwitchPanel), false) as SwitchPanel; } }
Rectangle GetPreviewWindowRect() { var parentWindow = VisualTreeHelperEx.FindAncestorByType <Window>(this); var relativePt = PreviewTarget.TranslatePoint(new System.Windows.Point(0, 0), parentWindow); var rect = new RectangleF((float)relativePt.X, (float)relativePt.Y, (float)PreviewTarget.ActualWidth, (float)PreviewTarget.ActualHeight); return(rect.ApplyDpi()); }
/// <summary> /// Drag of thumb started /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) { _item = DataContext as TableContent; if (_item != null) { _canvas = VisualTreeHelper.GetParent(_item) as DesignerCanvas; if (_canvas != null) { _connections = VisualTreeHelperEx.FindAncestorByType <DatabaseModelDesigner>(_canvas).ViewModel.ConnectionInfoViewModels.Where(t => t.SourceViewModel.Equals(_item.TableViewModel) || t.DestinationViewModel.Equals(_item.TableViewModel)).ToList(); } _item.TableViewModel.OnPositionAndMeasureChangesStarted(); } }
Rectangle GetPreviewWindowRect() { var parentWindow = VisualTreeHelperEx.FindAncestorByType <Window>(this); var relativePt = PreviewGrid.TranslatePoint(new System.Windows.Point(0, 0), parentWindow); var position = _reactor.Location.Value; var size = _reactor.Size.Value; var rect = new RectangleF((float)(relativePt.X + position.X), (float)(relativePt.Y + position.Y), (float)(size.Width), (float)(size.Height)); return(rect.ApplyDpi()); }
private void TreeListView_MouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton != MouseButton.Right) return; if (sender is TreeListView tree) { //右键选中 var p = e.GetPosition(tree); if (tree.InputHitTest(p) is DependencyObject item) { if (VisualTreeHelperEx.FindAncestorByType(item, typeof(TreeListViewItem), true) is TreeListViewItem node) { node.IsSelected = true; return; } } } }
/// <summary> /// Mouse drag started /// </summary> /// <param name="sender"></param> /// <param name="dragStartedEventArgs"></param> private void OnDragStarted(object sender, DragStartedEventArgs dragStartedEventArgs) { _item = DataContext as TableContent; if (_item != null) { _canvas = VisualTreeHelper.GetParent(_item) as DesignerCanvas; if (_canvas != null) { _connections = VisualTreeHelperEx.FindAncestorByType <DatabaseModelDesigner>(_canvas).ViewModel.ConnectionInfoViewModels .Where(t => !(t.DestinationViewModel.IsSelected && t.SourceViewModel.IsSelected)) .ToList(); } _item.TableViewModel.OnPositionAndMeasureChangesStarted(); _item.TableViewModel.IsMoving = true; } }
/// <summary> /// New table /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NewTableCommand_OnCanExecute(object sender, CanExecuteRoutedEventArgs e) { var parent = VisualTreeHelperEx.FindAncestorByType <MainWindow>(this); if (parent == null) { return; } var focus = FocusManager.GetFocusedElement(parent); var isSenderAllowed = focus is ScrollViewer || focus is Button; if (!isSenderAllowed) { e.ContinueRouting = true; e.CanExecute = false; } else { e.ContinueRouting = false; e.CanExecute = true; } }
/// <summary> /// Dimensions changed /// </summary> /// <returns></returns> public async Task CanvasDimensionsChanged() { var settings = new MetroDialogSettings() { AnimateHide = true, AnimateShow = false }; var parent = VisualTreeHelperEx.FindAncestorByType <MetroWindow>(this); var progressController = await parent.ShowProgressAsync("Please wait...", "Guidelines are updating", false, settings); await UpdateLines(); await progressController.CloseAsync(); StreamGeometry geometry = DesignerCanvas.CreateGridWithStreamGeometry(ViewModel.CanvasHeight, ViewModel.CanvasWidth, DesignerCanvas.GridCellWidth); ModelDesignerCanvas.RefreshGuideLines(geometry); ViewModel.OnComputedPropertyChanged(); }