コード例 #1
0
ファイル: ResizeThumb.cs プロジェクト: xiaojue52/myPlayer
        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;
        }
コード例 #2
0
ファイル: RotateThumb.cs プロジェクト: xiaojue52/myPlayer
        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);
            }
        }
コード例 #3
0
        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)));
            }
        }
コード例 #4
0
ファイル: MainWindow.xaml.cs プロジェクト: xiaojue52/myPlayer
        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;
            }
        }
コード例 #5
0
ファイル: MainWindow.xaml.cs プロジェクト: xiaojue52/myPlayer
 private void LayoutTextBox_TextChanged(object sender, System.EventArgs e)
 {
     UpdateLayoutData.setLayoutAttrbute(sender, currentControl);
 }
コード例 #6
0
ファイル: MainWindow.xaml.cs プロジェクト: xiaojue52/myPlayer
 private void CanvasTextBox_TextChanged(object sender, System.EventArgs e)
 {
     UpdateLayoutData.setCanvasAttrbute(sender, this.myContainer);
 }