转换位图上的旋转变换不会始终如一地旋转

时间:2016-04-07 13:06:11

标签: wpf bitmap rotation rotatetransform

我有一个图像源,我将其转换为变换后的位图并添加旋转变换以进行旋转。我通过鼠标双击这个代码。我的问题是,有时它会旋转,有时它不会(视觉上)。我在鼠标点击上设置了一个断点,我确信每次执行双击时它都会执行代码。顺便说一句,我正在保存我用于旋转的角度,这就是为什么当我重新加载图像并将保存的角度放在图像内的渲染变换时。它旋转到保存的角度。

这是我正在使用的代码。

var dropCanvas = _dropTarget as ItemsControl;
                var obj = _baseImage.Tag as FloorObjectViewModel;

                var floorItem = (dropCanvas.ItemsSource as BindingList<FloorObjectViewModel>).ElementAt((dropCanvas.ItemsSource as BindingList<FloorObjectViewModel>).IndexOf(obj));
                floorItem.Angle += 90;
                if (floorItem.Angle > 360)
                {
                    floorItem.Angle = 0;
                }


                TransformedBitmap transformBmp = new TransformedBitmap();
                transformBmp.BeginInit();
                transformBmp.Source = _baseImage.Source as BitmapSource;

                RotateTransform rotateTransform = new RotateTransform();
                rotateTransform.CenterX = _baseImage.ActualWidth / 2.0;
                rotateTransform.CenterY = _baseImage.ActualHeight / 2.0;
                rotateTransform.Angle = floorItem.Angle;

                transformBmp.Transform = rotateTransform;
                transformBmp.EndInit();

                _baseImage.Source = transformBmp;

我希望每次双击它时都会旋转它。但是,当我在第一次双击后立即执行双击时,似乎某些内容仍然在后台执行。 (抱歉多余,我希望你们有我的问题)

有什么想法吗?谢谢!

0 个答案:

没有答案