private void ResizeThumb_DragDelta(object sender, DragDeltaEventArgs e) { if (this.designerItem != null) { double deltaVertical, deltaHorizontal; switch (VerticalAlignment) { case System.Windows.VerticalAlignment.Bottom: deltaVertical = Math.Min(-e.VerticalChange, this.designerItem.ActualHeight - this.designerItem.MinHeight); Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) + (this.transformOrigin.Y * deltaVertical * (1 - Math.Cos(-this.angle)))); Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) - deltaVertical * this.transformOrigin.Y * Math.Sin(-this.angle)); this.designerItem.Height -= deltaVertical; break; case System.Windows.VerticalAlignment.Top: deltaVertical = Math.Min(e.VerticalChange, this.designerItem.ActualHeight - this.designerItem.MinHeight); Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) + deltaVertical * Math.Cos(-this.angle) + (this.transformOrigin.Y * deltaVertical * (1 - Math.Cos(-this.angle)))); Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) + deltaVertical * Math.Sin(-this.angle) - (this.transformOrigin.Y * deltaVertical * Math.Sin(-this.angle))); this.designerItem.Height -= deltaVertical; break; default: break; } switch (HorizontalAlignment) { case System.Windows.HorizontalAlignment.Left: deltaHorizontal = Math.Min(e.HorizontalChange, this.designerItem.ActualWidth - this.designerItem.MinWidth); Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) + deltaHorizontal * Math.Sin(this.angle) - this.transformOrigin.X * deltaHorizontal * Math.Sin(this.angle)); Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) + deltaHorizontal * Math.Cos(this.angle) + (this.transformOrigin.X * deltaHorizontal * (1 - Math.Cos(this.angle)))); this.designerItem.Width -= deltaHorizontal; break; case System.Windows.HorizontalAlignment.Right: deltaHorizontal = Math.Min(-e.HorizontalChange, this.designerItem.ActualWidth - this.designerItem.MinWidth); Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) - this.transformOrigin.X * deltaHorizontal * Math.Sin(this.angle)); Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) + (deltaHorizontal * this.transformOrigin.X * (1 - Math.Cos(this.angle)))); this.designerItem.Width -= deltaHorizontal; break; default: break; } UpdateLayoutData.UpdateChildLayoutData(this.designerItem); } e.Handled = true; }
private void RotateThumb_DragDelta(object sender, DragDeltaEventArgs e) { if (this.designerItem != null && this.canvas != null) { Point currentPoint = Mouse.GetPosition(this.canvas); Vector deltaVector = Point.Subtract(currentPoint, this.centerPoint); double angle = Vector.AngleBetween(this.startVector, deltaVector); RotateTransform rotateTransform = this.designerItem.RenderTransform as RotateTransform; rotateTransform.Angle = this.initialAngle + Math.Round(angle, 0); this.designerItem.InvalidateMeasure(); UpdateLayoutData.UpdateChildLayoutData(this.designerItem); //UpdateLayoutData.UpdateChildrenLayout(this.designerItem); } }
private void MoveThumb_DragDelta(object sender, DragDeltaEventArgs e) { if ((this.designerItem.Tag as string) == "preview") { return; } if (this.designerItem != null) { Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange); if (this.rotateTransform != null) { dragDelta = this.rotateTransform.Transform(dragDelta); } Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) + dragDelta.X); Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) + dragDelta.Y); UpdateLayoutData.UpdateChildLayoutData(this.designerItem); System.Console.WriteLine(string.Format("{0},{1}", this.designerItem.GetValue(Canvas.LeftProperty), this.designerItem.GetValue(Canvas.TopProperty))); } }
private void TextContent_TextChanged(object sender, TextChangedEventArgs e) { string tag = (sender as TextBox).Tag as string; switch (tag) { case "TextContent": UpdateLayoutData.setControlSource(currentControl, this.TextContent.Text); break; case "TextSize": if (currentControl == null) { return; } MyText myText = currentControl as MyText; if (this.TextSize.Text == "" || !this.TextSize.IsFocused) { return; } myText.setTextChildAttr(Convert.ToInt32(this.TextSize.Text), this.TextColor.SelectedIndex, this.TextBackground.SelectedIndex); break; } }
private void LayoutTextBox_TextChanged(object sender, System.EventArgs e) { UpdateLayoutData.setLayoutAttrbute(sender, currentControl); }
private void CanvasTextBox_TextChanged(object sender, System.EventArgs e) { UpdateLayoutData.setCanvasAttrbute(sender, this.myContainer); }