internal VNode(MNode node, WFrameworkElement frameworkElementOfNodeForLabelOfLabel, Func <MEdge, VEdge> funcFromDrawingEdgeToVEdge, Func <double> pathStrokeThicknessFunc) { PathStrokeThicknessFunc = pathStrokeThicknessFunc; Node = node; FrameworkElementOfNodeForLabel = frameworkElementOfNodeForLabelOfLabel; _funcFromDrawingEdgeToVEdge = funcFromDrawingEdgeToVEdge; CreateNodeBoundaryPath(); if (FrameworkElementOfNodeForLabel != null) { FrameworkElementOfNodeForLabel.Tag = this; //get a backpointer to the VNode Common.PositionFrameworkElement(FrameworkElementOfNodeForLabel, node.GeometryNode.Center, 1); WPanel.SetZIndex(FrameworkElementOfNodeForLabel, WPanel.GetZIndex(BoundaryPath) + 1); } SetupSubgraphDrawing(); Node.Attr.VisualsChanged += (a, b) => Invalidate(); Node.IsVisibleChanged += obj => { foreach (var frameworkElement in FrameworkElements) { frameworkElement.Visibility = Node.IsVisible ? WVisibility.Visible : WVisibility.Hidden; } }; }
void SetupCollapseSymbol() { var collapseBorderSize = GetCollapseBorderSymbolSize(); Debug.Assert(collapseBorderSize > 0); _collapseButtonBorder = new WBorder { Background = Common.BrushFromMsaglColor(_subgraph.CollapseButtonColorInactive), Width = collapseBorderSize, Height = collapseBorderSize, CornerRadius = new WCornerRadius(collapseBorderSize / 2) }; WPanel.SetZIndex(_collapseButtonBorder, WPanel.GetZIndex(BoundaryPath) + 1); var collapseButtonCenter = GetCollapseButtonCenter(collapseBorderSize); Common.PositionFrameworkElement(_collapseButtonBorder, collapseButtonCenter, 1); double w = collapseBorderSize * 0.4; _collapseSymbolPath = new WPath { Data = CreateCollapseSymbolPath(collapseButtonCenter + new MPoint(0, -w / 2), w), Stroke = _collapseSymbolPathInactive, StrokeThickness = 1 }; WPanel.SetZIndex(_collapseSymbolPath, WPanel.GetZIndex(_collapseButtonBorder) + 1); _topMarginRect.MouseLeftButtonDown += TopMarginRectMouseLeftButtonDown; }
private void BgProgressBar_OnMouseMove(object sender, MouseEventArgs e) { if (Panel.GetZIndex(BgProgressBar) < 1) { return; } _positionToolTip.Content = PositionToolTipText; _positionToolTip.IsOpen = BgProgressBar.IsMouseOver; if (!_positionToolTip.IsOpen) { return; } var p = MouseUtils.CorrectGetPosition(); _positionToolTip.HorizontalOffset = p.X; _positionToolTip.VerticalOffset = p.Y - 20; }
private void BgProgressBar_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (Panel.GetZIndex(BgProgressBar) < 1 || !PlaybackManagerInstance.IsSomethingLoaded) { return; } var p = MouseUtils.CorrectGetPosition(BgProgressBar); try { PlaybackManagerInstance.Position = TimeSpan.FromMilliseconds(PlaybackManagerInstance.Duration.TotalMilliseconds / BgProgressBar.ActualWidth * p.X); } catch { } }