昨天学习了一下Silverlight基础感觉也没有什么特别之处,不过圈里朋友劝我不要深入学习了,因为ms已不再爱他的这个孩子了,好吧那就把上些简单的东西稍微过一下吧,要不然公司有什么需求要改的小弟不会。单击事件,鼠标事件基本和Winform里的差不多,都是声明,注册。下面是个简单的图片浏览器如下代码:

前台:

      <UserControl xmlns:my="clr-namespace:SilverlightApplication1"  x:Class="SilverlightApplication1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="400" d:DesignWidth="800">
    <Grid>

<Canvas Background="#000000">
            <Canvas.Resources>
                <Storyboard x:Name="myStoryboard">
                    <DoubleAnimation
          Storyboard.TargetName="myTransform"
          Storyboard.TargetProperty="AngleY"
          From="0" To="180" Duration="0:0:5" RepeatBehavior="1x"/>
                    <DoubleAnimation
          Storyboard.TargetName="leftScaleTransform"
          Storyboard.TargetProperty="ScaleX"
          From="0" To="1" Duration="0:0:5" RepeatBehavior="1x"/>
                    <DoubleAnimation
          Storyboard.TargetName="leftScaleTransform"
          Storyboard.TargetProperty="ScaleY"
          From="0" To="1" Duration="0:0:5" RepeatBehavior="1x"/>
                    <DoubleAnimation
          Storyboard.TargetName="rightScaleTransform"
          Storyboard.TargetProperty="ScaleX"
          From="0" To="1" Duration="0:0:5" RepeatBehavior="1x"/>
                    <DoubleAnimation
          Storyboard.TargetName="rightScaleTransform"
          Storyboard.TargetProperty="ScaleY"
          From="0" To="1" Duration="0:0:5" RepeatBehavior="1x"/>
                </Storyboard>
            </Canvas.Resources>

<Image Source="border.png" Canvas.Top="150" Canvas.Left="220"
               Width="356" Height="226"></Image>
            <Image x:Name="currentImg" Source="5.png" Width="340" Height="175"
               Canvas.Top="154" Canvas.Left="228">
                <Image.RenderTransform>
                    <TransformGroup>
                        <SkewTransform x:Name="myTransform" AngleX="0" AngleY="0"
                               CenterX="170" CenterY="87.5"></SkewTransform>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>

<Image Source="border.png" Canvas.Top="180" Canvas.Left="20"
               Width="178" Height="113"></Image>
            <Image x:Name="leftImg" Source="4.png" Canvas.Top="182" Canvas.Left="24"
               Width="170" Height="87.5" Opacity="0.6"
               MouseEnter="OnMouseEnter" MouseLeave="OnMouseLeave"
               MouseLeftButtonDown="leftImg_MouseLeftButtonDown">
                <Image.RenderTransform>
                    <ScaleTransform x:Name="leftScaleTransform" ScaleX="1" ScaleY="1"
                            CenterX="85" CenterY="34"></ScaleTransform>
                </Image.RenderTransform>
            </Image>

<Image Source="border.png" Canvas.Top="180" Canvas.Left="600"
               Width="178" Height="113"></Image>
            <Image x:Name="rightImg" Source="6.png" Canvas.Top="182" Canvas.Left="604"
               Width="170" Height="87.5" Opacity="0.6"
               MouseEnter="OnMouseEnter" MouseLeave="OnMouseLeave"
               MouseLeftButtonDown="rightImg_MouseLeftButtonDown">
                <Image.RenderTransform>
                    <ScaleTransform x:Name="rightScaleTransform" ScaleX="1" ScaleY="1"
                            CenterX="85" CenterY="34"></ScaleTransform>
                </Image.RenderTransform>
            </Image>
        </Canvas>
    </Grid>
        
</UserControl>

后台代码:

private void OnMouseEnter(object sender, MouseEventArgs e)
        {
            Image img = sender as Image;
            img.Opacity = 1.0;
        }

private void OnMouseLeave(object sender, MouseEventArgs e)
        {
            Image img = sender as Image;
            img.Opacity = 0.6;
        }
        private int index = 5;
        private int MIN = 1;
        private int MAX = 8;
        private void leftImg_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            index = index == MIN ? MAX : index - 1;
            Play();

}

private void rightImg_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            index = index == MAX ? MIN : index + 1;
            Play();

}

void Play()
        {

int left = index == MIN ? MAX : index - 1;

int right = index == MAX ? MIN : index + 1;

}

出来的效果如下:

Silverlight 5 系列学习之二的更多相关文章

  1. Silverlight 5 系列学习之一

    最近公司要用Silverlight 开发并且使用了5 ,以前只学过WPF 没看过Silverlight ,不过在争光中国看了看其概念原来如此.它只不过是轻量级的WPF,且目标在于跨浏览器及平台.费话少 ...

  2. Silverlight 2学习笔记二:三个基本布局控件(Canvas、StackPanel、Grid )

    这篇文章主要是翻译了ScottGu博客的文章:Silverlight Tutorial Part 2: Using Layout Management.虽然是翻译,但通过笔记记录,我发现对这三个布局控 ...

  3. arcgis api for silverlight开发系列之二:缓存图层与动态图层及图层总结 .

    本文摘自:http://blog.csdn.net/leesmn/article/details/6916458(很优秀的博客)   作为ESRI的平台的一份子arcgis api for silve ...

  4. 神经网络系列学习笔记(二)——神经网络之DNN学习笔记

    一.单层感知机(perceptron) 拥有输入层.输出层和一个隐含层.输入的特征向量通过隐含层变换到达输出层,在输出层得到分类结果: 缺点:无法模拟稍复杂一些的函数(例如简单的异或计算). 解决办法 ...

  5. MVC系列学习(十二)-服务端的验证

    在前一讲,提到过,客户端的东西永远可以造假,所以我们还要在服务端进行验证 注意:先加载表单,后添加js文件,才能有效:而先加载js,后添加表单,是没有效果的 1.视图与Model中的代码如下 2.一张 ...

  6. Java系列学习(十二)-开始Eclipse

    1.用Eclipse来写一个HelloWorld (1)选择工作空间 工作空间其实就是我们写的源代码所在的目录 (2)创建一个Java项目 [File-New-Java Project] (3)创建包 ...

  7. 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)

    一.DrawBezier 画立体的贝尔塞曲线 private void frmGraphics_Paint(object sender, PaintEventArgs e) { Graphics g ...

  8. [转]WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组

    在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选等功能. 一.数据的排序: ...

  9. Spring Boot系列学习文章(二) -- 配置多数据源

    前言: 在上一章中,我们已经搭建好项目,现在来讲一下如何配置数据源. 由于在有的项目中,用的数据源可能会涉及多个,且是不同类型的,我们接下来就讲解多数据源的配置. 情景描述: 现有项目需要访问不同的数 ...

随机推荐

  1. 多文档自己主动文摘:Multi-Document Summarization,MDS

  2. python 基础 7.5 commands 模块

    一. commands 模块   1.commands 模块只使用与linxu 的shell 模式下 在我们平时码字时,经常需要调用系统脚本或者系统命令来解决很多问题,接下来,我们就介绍给大家一个很好 ...

  3. 利用python进行数据分析之pandas入门

    转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...

  4. [转]Struts form传值

    Struts form传值 大约三四个月没用过struts框架,突然想拾起来,却发现好多都忘了.出现传值传不过来的问题.没办法,上网查了一下,看见了一位老师的帖子,总结的很好.特此转载与分享,文末附链 ...

  5. Hadoop实战-Flume之Source regex_filter(十三)

    a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = ...

  6. 认识影片版本(CAM、TS、TC、DVD、HD、BD、TVRIP等)

    许多朋友在下载电影的时候, 往往会被各种各样的版本标识弄糊涂,今天把各种版本的缩写收集在一起,希望对大家有所帮助 . 引用: 1.CAM(枪版)    CAM 通常是用数码摄像机从电影院盗录.有时会使 ...

  7. T_CODE I18N

    关于T-CODE I18N 最近由于看到很多人遇到SMARTFORMS不能拖拽字段的问题,这个的解决方案 I18N:解决SMARTFORMS的不能从Field name 那边直接把变量拖入右边编辑框 ...

  8. drawable canvas使用

    /** * Drawable 就是一个可画的对象, * 其可能是一张位图(BitmapDrawable), * 也可能是一个图形(ShapeDrawable), * 还有可能是一个图层(LayerDr ...

  9. iOS本地数据存取,看这里就够了

    本文授权转载,作者:hosea_zhou(简书) 应用沙盒 1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 2) ...

  10. (C)结构数组

    结构数组 对于大小相同但是类型不同的数组,定义结构体数组对其很有帮组.例如: char *keyword[NKEYS]; int keycount[NKEYS]; 这两个数组大小相同,因此 可以用另一 ...