用Clip属性可以对图像进行剪裁,Rect属性在上一篇博客中用过许多次,前2个值为起始点的X轴和Y轴坐标,后2个值为终点的X轴和Y轴坐标。
<Image Source="9327.jpg"> <Image.Clip> <RectangleGeometry Rect="10,10,100,100"/> </Image.Clip> </Image>Image和ImageBrush能处理的图像格式有如下几种:
JPEG XR
图标(ICO)
位图(BMP)
图像交换格式(GIF)
联合图像专家组(JPEG)
可移植网络图像(PNG)
标记图像文件格式(TIEF)
原图如下:
首先是布局代码:
=> ============>这里我通过点击按钮让X、Y、Z旋转,当然你也可以设定一个定时器,这样就可以让他一直旋转了。
MainPage : Page { private double x = 0; private double y = 0; PlaneProjection p = new PlaneProjection(); public MainPage() { this.InitializeComponent(); } (object sender, RoutedEventArgs e) { p.RotationX += 9.0; Image1.Projection = p; } (object sender, RoutedEventArgs e) { p.RotationY += 4.0; Image1.Projection = p; } (object sender, RoutedEventArgs e) { p.RotationZ += 2.0; Image1.Projection = p; } }效果图:
实战:用UserControl来绘制时钟首先你需要添加一个User Control文件,如图:
整个文件我都列了出来:
<UserControl ==============> ===============> =========> ===============> ====> > ======> </Grid> </UserControl>如你看到的那样,一开始是样式资源,它是一个Storyboard,这里设置了3个指针的走法,都是旋转360度且一直循环。
后面则是相关的Rectangle等,当然了,这些不可能一次性写完,你得慢慢测试才可以。
VS的优势在于你可以拖动控件,以后有机会我再写一篇介绍如何使用Blend的博客,这里就不详细说明了。
在MyUserControl1.xaml.cs文件中,写一个方法:
private void SetAndStartClock(object sender, RoutedEventArgs routedEventArgs) { System.DateTime currentDate = DateTime.Now; double hourangle = (((float)currentDate.Hour) / 12) * 360 + currentDate.Minute / 2; double minangle = (((float)currentDate.Minute) / 60) * 360; double secangle = (((float)currentDate.Second) / 60) * 360; hourAnimation.From = hourangle; hourAnimation.To = hourangle + 360; minuteAnimation.From = minangle; minuteAnimation.To = minangle + 360; secondAnimation.From = secangle; secondAnimation.To = secangle + 360; clockStoryboard.Begin(); }首先获取到当前的系统时间,然后根据这个获得各个指针该有的角度,最后让其在动画中旋转,最后开启这个动画就好。因为动画资源已经设定好了,所以也无需再手动控制这些指针如何选择。
好了,这篇博客到此为止,欢迎大家常来我的博客,谢谢。
号外求投票或转发支持呀……希望我不要死得太惨了……
请点击这里:投票
投票从10号开始一直持续到20号,拜托各位了!
——————当然你也可以直接点击图片啦
顶 2 踩 0
我的同类文章
猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
壮士,干了这票!——感谢
个人资料
NoMasp