我很少写东西,往常写东西都是来提问的,好了不废话:
Xaml:
代码
<Image Source="images/1.png" x:Name="img">
<Image.Projection>
<PlaneProjection x:Name="myimagePlanProjection"></PlaneProjection>
</Image.Projection>
</Image>
<Image.Projection>
<PlaneProjection x:Name="myimagePlanProjection"></PlaneProjection>
</Image.Projection>
</Image>
cs:
代码
private void LayoutRoot_MouseMove(object sender, MouseEventArgs e)
{
myimagePlanProjection.RotationX = e.GetPosition(null).X;
myimagePlanProjection.RotationY = e.GetPosition(null).Y;
myimagePlanProjection.RotationY = e.GetPosition(null).X - e.GetPosition(null).Y;
}
{
myimagePlanProjection.RotationX = e.GetPosition(null).X;
myimagePlanProjection.RotationY = e.GetPosition(null).Y;
myimagePlanProjection.RotationY = e.GetPosition(null).X - e.GetPosition(null).Y;
}
就这样一个简单的图片3D透视效果完成了。
myimagePlanProjection.RotationX 设置X轴的值
myimagePlanProjection.RotationY 设置Y轴的值
myimagePlanProjection.RotationY 设置Z轴的值
我在这里贴这个例子是图方便,所以直接使用了名叫LayoutRoot的Grid的一个鼠标移动,通过e.GetPosition(null).X,e.GetPosition(null).Y来获取当前鼠标所在点的对应数值。我在设置myimagePlanProjection.RotationY的时候是图方便演示就随便设置成了x-y大家在使用的时候可以根据实际情况来设置。
这个简单的例子是展示的图片控件的3D透视,当然可以根据你的需要使用其它控件如:StackPanel