silverlight 中 物件儿的位置变换 TransformGroup,RotateTransform 和 ScaleTransform 用C#
来源:互联网 发布:网络四大杀手 编辑:程序博客网 时间:2024/05/06 00:25
正向你已懂得的那样 在WPF或silverlight中物件儿(这里指的是UIElement 的子孙们)是可以通过矩阵变换的 转 ,移,缩小等等。 同时微软也提供了方法然你直接地变换。RotateTransform 就是通过角度的变转动物件儿。ScaleTransform 是缩放物件儿。太多的描述可以去看 微软的说明。这里写了一段代码 共想了解它的朋友使用。
/// <summary> /// 一个旋转加缩小的例子 in code C# /// 当然你也可以直接转矩阵 /// </summary> /// <param name="par"> 是一个比较高层物件 它具有RenderTransform /// 和RenderSize。 就是说这个方法可以被UIElement的子孙们使用, 比如 image button。 /// 这个方法就是把一个物件转并且缩小 /// </param> private void Exe_image_route(UIElement par) { //每一次要转的角度 var angle = 90; //g_t 的根儿 也是矩阵它可以让你吧不同的变换累加在一起 比如 转 ,移动。。 //所以他有一群儿子 ,这里简称 组变换 TransformGroup g_t ; //rt 只做 转的变换 RotateTransform rt ; //st 只做 缩小的变换 ScaleTransform st ; //看看有没有已设定的组变换 g_t = (TransformGroup)par.GetValue(UIElement.RenderTransformProperty); if (g_t != null) { //如果有,把他们都取出来 rt = (RotateTransform)g_t. Children.FirstOrDefault (p => p.GetType() == typeof(RotateTransform)); st = (ScaleTransform)g_t. Children.FirstOrDefault (p => p.GetType() == typeof(ScaleTransform)); if (rt == null || st == null) { //如果不全就让他们都设为起点 rt = new RotateTransform(); st = new ScaleTransform(); } } else { //连组变换都没有 大家都是第一次 都设为初始值。 g_t = new TransformGroup(); rt = new RotateTransform (); st = new ScaleTransform (); } //转一个角度 是加一个角度 rt.Angle = rt.Angle + angle; //设旋转中心 rt.CenterX = par.RenderSize.Width /2; rt.CenterY = par.RenderSize.Height /2; //设缩小中心 st.CenterX = par.RenderSize.Width /2; st.CenterY = par.RenderSize.Height /2; //这里给一个固定缩小值 你可以根据需要改 st.ScaleX = 0.7; st.ScaleY = 0.7; //不要忘了 每回都是新的啊 g_t = new TransformGroup(); //把儿子加进去。 你当然还可以加别的变换 比如移动。有顺序问题哦 g_t.Children.Add(rt); g_t.Children.Add(st); //让这物件 按你的变换组玩。 par.RenderTransform=g_t; }
0 0
- silverlight 中 物件儿的位置变换 TransformGroup,RotateTransform 和 ScaleTransform 用C#
- Silverlight开发历程—RenderTransform特效(TranslateTransform,RotateTransform,ScaleTransform,skewTransform)
- silverlight Scaletransform
- ScaleTransform缩放变换
- C# Graphics旋转和TranslateTransform及RotateTransform用法
- C# Graphics旋转和TranslateTransform及RotateTransform用法
- osg中三维模型的位置变换
- silverlight应用(二):ScaleTransform动画
- Silverlight中二维变换详解
- siverlight中的复杂变形CompositeTransform和<TransformGroup>
- 位置、变换的表示
- Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)
- C#中如何设定窗体的位置和大小
- U3D显示鼠标悬停位置物件的名字
- 用c#写的DFT和FFT变换的程序
- c# 中窗体的位置
- Unity3d中物件(gameobject)的基础操作
- 关于有限状态机和游戏中角色和复杂物件的思考
- 杭电2132An easy problem
- POJ 3299 Humidex(简单题)
- iOS8 中的 Size Class
- MyEclipse中js的乱码问题
- 自我介绍和博客目的
- silverlight 中 物件儿的位置变换 TransformGroup,RotateTransform 和 ScaleTransform 用C#
- symbol:constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature
- 从信息论的角度理解极大似然法
- Visual Studio 2008 Consolas字体包
- 排序问题(结构体排序)
- 访问String及其内容
- 那些年我看到开源工程中的 光栅化算法
- 11.6 UIScrollview的放大和缩小
- 输入一个字符串,求单词个数