davin

Just a little thinking and interest!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  53 随笔 :: 8 文章 :: 127 评论 :: 13万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

foundation silverligh3 animation 书中前3章讲述基本的transform,blur,这次读书笔记的内容就是图片效果(image effect),裁剪(clippingpath),拖拽(draganddrop)这几个动画效果。

图片效果:,在blend中的Appearance标签下 选择Effect new,弹出对话框,可以看到BlurEffert,DropShadowEffec,

图中的效果就是图片的模糊的效果

clippingpath(裁剪):用一个图形去裁剪另外一个。创建一个clippingpath有3种方式,

1.使用code-behind文件,有blend,这种方式一般不太会用得到

2.在blend中的画板上选择一个你想裁剪的对象然后去Ctrl-click第二个对象

3.直接在Xaml中创建裁剪路径是创建一个裁剪区域。

这章图片的大小是320*240,被一个80*60的矩形裁剪为16个小的矩形。在xmal也面有16个这样的代码段

    <Image Width="320" Height="240" Source="beeFlower640x480.jpg" Stretch="Fill" x:Name="Row0Col1" RenderTransformOrigin="0.5,0.5" Canvas.Top="1">
                <Image.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Image.RenderTransform>
                <Image.Clip>
                    <RectangleGeometry Rect="80, 0, 80, 60"/>
                </Image.Clip>
            </Image>

关键部分: <Image.Clip> <RectangleGeometry Rect="80, 0, 80, 60"/> </Image.Clip>RectangleGeometry

<RectangleGeometry Rect="80, 0, 80, 60"/>是什么意思?Rect的意思是以(80,0)为顶点的长为80,宽为60的矩形,裁剪完毕侯侯对每一个小矩形设置一个transform

 

draganddrop(拖拽):

拖拽主要分为3个步骤:

1.当MouseLeftButtonDown,计算出鼠标的当前位置

2.当MouseMove,取当前鼠标的位置,计算当前位置与MouseLeftButtonDown时的鼠标位置的x,y轴距离,被拖拽对象的Canvas.TopProperty,Canvas.LeftProperty

3.当MouseLeftButtonDown,释放鼠标。

posted on   davin  阅读(557)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示