コード例 #1
0
 private void SwitchPresenter_Loaded(object sender, RoutedEventArgs e)
 {
     if (_switchRoot == null)
     {
         this.SwitchParent = VisualTreeHelperEx.FindAncestorByType(this, typeof(SwitchPanel), false) as SwitchPanel;
     }
 }
コード例 #2
0
        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);
                    }
                });
            }
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        /// <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();
            }
        }
コード例 #7
0
        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());
        }
コード例 #8
0
 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;
             }
         }
     }
 }
コード例 #9
0
        /// <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;
            }
        }
コード例 #10
0
        /// <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;
            }
        }
コード例 #11
0
        /// <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();
        }