【发布时间】:2015-10-15 14:13:29
【问题描述】:
我试图在滚动滑块时旋转一个矩形 有 2 个步骤: 单击一个矩形 - 滚动滑块。 如果我只画一个矩形,一切都好。 但是当我绘制 2 个或更多矩形并开始旋转时,我的所有矩形都以相同的角度旋转。 我对此一无所知。 谁能帮我? 提前致谢! 这是我的代码:(我在此页面的另一篇文章中找到了用于旋转的代码)
Shape _shape;
RotateTransform rt = new RotateTransform();
private void MyCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs)
{
/////////////////////////////////////////////////////
//for know which rectangle has been clicked
if (MyTransform_type == TRANSFORM_TYPE.ROTATE)
{
_shape = e.OriginalSource as Shape;
if (_shape != null)
{
_shape = (Shape)e.OriginalSource;
}
}
}
private void MyCanvas_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
if (MyTransform_type != TRANSFORM_TYPE.NONE && MyTransform_type != TRANSFORM_TYPE.ROTATE)
{
if (_shape == null)
return;
//_shape.ReleaseMouseCapture();
Cursor = Cursors.Arrow;
}
}
private void sldRotate_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (_shape != null)
{
_shape.RenderTransform = rt;
_shape.RenderTransformOrigin = new Point(0.5, 0.5);
var da = new DoubleAnimation(rt.Angle, sldRotate.Value, new Duration(TimeSpan.FromSeconds(0.001)));
rt.BeginAnimation(RotateTransform.AngleProperty, da);
rt.Angle = sldRotate.Value;
}
}
【问题讨论】:
-
请添加完整的代码,例如你在哪里设置“rt”?
-
"rt" 在我的代码顶部:D
标签: c# wpf rotation slider rectangles