private void PerformLayout(object sender, RoutedEventArgs e) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); double onScreenState = (currentPosition.Y - m_yPosInactive) / (m_yPosActive - m_yPosInactive); MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; double screenHeight = mainWindow.ActualHeight; double screenWidth = mainWindow.ActualWidth; double viewHeight = ActualHeight; double viewWidth = ActualWidth; m_yPosActive = screenHeight * 0.5 - (viewHeight * 0.5 + ConversionHelpers.AndroidToWindowsDip(16)); m_yPosInactive = screenHeight * 0.5 + viewHeight * 0.5; double layoutY = m_yPosInactive; if (!m_isFirstLayout) { layoutY = onScreenState * (m_yPosActive - m_yPosInactive) + m_yPosInactive; } m_isFirstLayout = false; var transform = new TranslateTransform( -(viewWidth * 0.5 + ConversionHelpers.AndroidToWindowsDip(32)), layoutY); RenderTransform = transform; }
private void PerformLayout(object sender, RoutedEventArgs e) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; double screenHeight = mainWindow.MainGrid.ActualHeight; double screenWidth = mainWindow.MainGrid.ActualWidth; double viewHeight = ActualHeight; double viewWidth = ActualWidth; double pointWidth = m_compassPoint.Width; double pointHeight = m_compassPoint.Height; m_compassPointOffsetX = (viewWidth) * 0.5; m_compassPointOffsetY = (viewHeight) * 0.5; const double margin = 23.0; m_yPosActive = screenHeight * 0.5 - (viewHeight * 0.5) - (margin); m_yPosInactive = screenHeight * 0.5 + viewHeight * 0.5; var transform = new TranslateTransform(currentPosition.X, m_isActive ? m_yPosActive : m_yPosInactive); RenderTransform = transform; }
/// <inheritdoc /> protected override Size ArrangeOverride(Size finalSize) { if (_visualCollection != null) { var padding = 2.0; var adornedElementHeight = AdornedFeatures.ActualHeight; var adornedElementWidth = AdornedFeatures.ActualWidth; var x = 0.0; var y = adornedElementHeight + padding; // by default, appear below target attributes to edit var adornerOrigin = RenderTransform.Transform(new Point(0, 0)); if ((adornerOrigin.X != 0) || (adornerOrigin.Y != 0)) { // Ensure we position so we're visible, if possible. var adornerLeftEdge = adornerOrigin.X; var adornerRightEdge = adornerLeftEdge + _layoutRoot.DesiredSize.Width; var adornerTopEdge = adornerOrigin.Y + y; var adornerBottomEdge = adornerTopEdge + _layoutRoot.DesiredSize.Height; if (adornerRightEdge > _layer.ActualWidth) { // Nudge to the left enough to keep visible. x = _layer.ActualWidth - adornerRightEdge - padding; } if (adornerBottomEdge > _layer.ActualHeight) { // Place above the adorned element. y = -_layoutRoot.DesiredSize.Height - padding; } } Rect elementRect = new Rect(x, y, _layoutRoot.DesiredSize.Width, _layoutRoot.DesiredSize.Height); _layoutRoot.Arrange(elementRect); } return(finalSize); }
public void Component_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { if (ParentCircuit.ParentWindow.SelectedTool == "SELECT") { if (DragStarted) { Point newPosition = new Point(e.GetPosition(this).X - moveOrigin.X, e.GetPosition(this).Y - moveOrigin.Y); newPosition = RenderTransform.Transform(newPosition); newPosition = new Point(newPosition.X + ComponentPosition.X, newPosition.Y + ComponentPosition.Y); Point snappedPosition = Util.snap(newPosition, Constants.ScaleFactor); ComponentPosition = snappedPosition; Canvas.SetLeft(this, ComponentPosition.X); Canvas.SetTop(this, ComponentPosition.Y); } } } //The below statements handle the case that the mouse is moved over a component //while a wire or leaded component is beign placed if (Breadboard.StartedWire) { Point actualCoord = e.GetPosition(ParentCircuit.ParentWindow.DrawArea); Orientation o = Util.getBestOrientation(Breadboard.WirePointA, actualCoord); int length = 0; if (o == Orientation.Horizontal) { length = (int)((actualCoord.X - Breadboard.WirePointA.X) / Constants.ScaleFactor); } else { length = (int)((actualCoord.Y - Breadboard.WirePointA.Y) / Constants.ScaleFactor); } Breadboard.NewWire.Length = length; Breadboard.NewWire.WireOrientation = o; Breadboard.NewWire.Render(); } else if (Breadboard.StartedLeadedComponent) { Point actualCoord = e.GetPosition(ParentCircuit.ParentWindow.DrawArea); Orientation o = Util.getBestOrientation(Breadboard.ComponentPointA, actualCoord); int length = 0; if (o == Orientation.Horizontal) { length = (int)((actualCoord.X - Breadboard.ComponentPointA.X) / Constants.ScaleFactor); } else { length = (int)((actualCoord.Y - Breadboard.ComponentPointA.Y) / Constants.ScaleFactor); } Breadboard.NewLeadedComponent.Length = length; Breadboard.NewLeadedComponent.orientation = o; Breadboard.NewLeadedComponent.Render(); } }
protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters) { var bounds = LayoutInformation.GetLayoutSlot(this); if (bounds.Contains(RenderTransform.Transform(hitTestParameters.HitPoint))) { return(new PointHitTestResult(this, hitTestParameters.HitPoint)); } return(null); }
public void AnimateToIntermediateOnScreenState(float onScreenState) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); double viewY = currentPosition.Y; double newY = m_yPosInactive + (m_yPosActive - m_yPosInactive) * onScreenState; if (viewY != newY) { RenderTransform = new TranslateTransform(currentPosition.X, newY); } }
public void UpdateScreenLocation(float x, float y) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; double screenHeight = mainWindow.MainGrid.ActualHeight; double screenWidth = mainWindow.MainGrid.ActualWidth; double marginX = 25; TranslateTransform transform = new TranslateTransform(x - (screenWidth * 0.5f) + (ActualWidth * 0.5f) + marginX, y - (screenHeight * 0.5f)); RenderTransform = transform; }
void Sprite_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e) { GeneralTransform gt = TransformToVisual(e.ManipulationContainer).Inverse; if (e.PinchManipulation != null) { if (isnewmanipul) { tx = CT.TranslateX; ty = CT.TranslateY; r = CT.Rotation; isnewmanipul = false; } Point originalCenter = RenderTransform.Transform(gt.Transform(e.PinchManipulation.Original.Center)); Point newCenter = RenderTransform.Transform(gt.Transform(e.PinchManipulation.Current.Center)); CT.TranslateX = tx + newCenter.X - originalCenter.X; CT.TranslateY = ty + newCenter.Y - originalCenter.Y; CT.Rotation = r + angleBetween2Lines( gt.Transform(e.PinchManipulation.Current.PrimaryContact), gt.Transform(e.PinchManipulation.Current.SecondaryContact), gt.Transform(e.PinchManipulation.Original.PrimaryContact), gt.Transform(e.PinchManipulation.Original.SecondaryContact)) * (CT.ScaleX * CT.ScaleY > 0 ? 1 : -1); //CT.ScaleX=CT.ScaleY*= e.PinchManipulation.DeltaScale; double k = e.PinchManipulation.DeltaScale; if (firstManipuletion) { firstWidth = Width; firstHeight = Height; firstManipuletion = false; } Width = Math.Min(Width * k, firstWidth * maxZC); Height = Math.Min(Height * k, firstHeight * maxZC); } else { Point start = RenderTransform.Transform(gt.Transform(new Point(0, 0))); Point end = RenderTransform.Transform(gt.Transform(e.DeltaManipulation.Translation)); CT.TranslateX += end.X - start.X; CT.TranslateY += end.Y - start.Y; isnewmanipul = true; } e.Handled = true; //SetTransform(); Dispatcher.BeginInvoke(SetTransform); }
public void AnimateViewToY(double y) { var currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); var animation = new DoubleAnimation(); animation.From = currentPosition.Y; animation.To = y; animation.Duration = new Duration(TimeSpan.FromMilliseconds(m_stateChangeAnimationTimeMilliseconds)); animation.EasingFunction = new SineEase(); var transform = new TranslateTransform(currentPosition.X, currentPosition.Y); RenderTransform = transform; transform.BeginAnimation(TranslateTransform.YProperty, animation); }
private void dispatcherTimer_Tick(object sender, EventArgs e) { if (!onBlur) { return; } try { Point zero = new Point(0, 0); Point relativePoint = TransformToAncestor(Window).Transform(new Point(0, 0)); //l.Content = Math.Round(-RenderTransform.Transform(zero).X * 2 + relativePoint.X).ToString(); blur.Margin = new Thickness((-RenderTransform.Transform(zero).X * 2 + relativePoint.X), -relativePoint.Y, 0, 0); } catch (InvalidOperationException) { } }
private void OnLayoutChanged(object sender, RoutedEventArgs e) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; double screenHeight = mainWindow.MainGrid.ActualHeight; double screenWidth = mainWindow.MainGrid.ActualWidth; double viewHeight = ActualHeight; double viewWidth = ActualWidth; const double margin = 23.0; m_yPosActive = screenHeight * 0.5 - (viewHeight * 0.5) - (margin); m_yPosInactive = screenHeight * 0.5 + viewHeight * 0.5; var transform = new TranslateTransform((screenWidth * 0.5) - (ActualWidth * 0.5), m_isActive ? m_yPosActive : m_yPosInactive); RenderTransform = transform; }
public void OnBlur() { BlurEffect blurBackEffect = blur.Effect as BlurEffect; SetBlur(Obj, (int)blurBackEffect.Radius, Window); SolidColorBrush c = new SolidColorBrush(Color.FromRgb(7, 8, 31)); blurB.Background = c; onBlur = true; try { Point zero = new Point(0, 0); Point relativePoint = TransformToAncestor(Window).Transform(new Point(0, 0)); //l.Content = Math.Round(-RenderTransform.Transform(zero).X * 2 + relativePoint.X).ToString(); blur.Margin = new Thickness((-RenderTransform.Transform(zero).X * 2 + relativePoint.X), -relativePoint.Y, 0, 0); } catch (ArgumentNullException) { } }
private void PerformLayout(object sender, RoutedEventArgs e) { Point currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; double screenHeight = mainWindow.MainGrid.ActualHeight; double screenWidth = mainWindow.MainGrid.ActualWidth; double viewHeight = ActualHeight; double viewWidth = ActualWidth; const double margin = 23.0; m_yPosActive = screenHeight * 0.5 - (viewHeight * 0.5) - (margin); m_yPosInactive = screenHeight * 0.5 + viewHeight * 0.5; var transform = new TranslateTransform( ConversionHelpers.AndroidToWindowsDip((double)Application.Current.Resources["PinCreationButtonMarginToCentre"]) + viewWidth * 0.5, m_isActive ? m_yPosActive : m_yPosInactive); RenderTransform = transform; }
void DragThumb_DragDelta(object sender, DragDeltaEventArgs e) { FrameworkElement item = _controlledItem; if (item != null) { Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange); dragDelta = RenderTransform.Transform(dragDelta); double left = Canvas.GetLeft(item); double top = Canvas.GetTop(item); left = double.IsNaN(left) ? 0 : left; top = double.IsNaN(top) ? 0 : top; double x = left + dragDelta.X; double y = top + dragDelta.Y; EditorHelper.SetDependencyProperty(item, Canvas.LeftProperty, x); EditorHelper.SetDependencyProperty(item, Canvas.TopProperty, y); } e.Handled = false; }
/// <inheritdoc/> protected override Point PtvMercatorToCanvas(Point mercatorPoint) { return(RenderTransform == canvasTransform ? new Point(mercatorPoint.X, -mercatorPoint.Y) : RenderTransform.Transform(canvasTransform.Inverse.Transform(new Point(mercatorPoint.X, -mercatorPoint.Y)))); }
public Point ToViewCoordinates(Point point) { return(RenderTransform.Transform(point)); }