首先我也是刚刚自学一个礼拜,说实话自学真是好纠结,好多东西都要在网上这里找那里找的,所以我把找到的那些东西整理了一下。
推荐去这里下载更多的SilverlightDemo
http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html
首先是配置Silverlight的环境,我的VS2010中文版,装了2010SP1,然后再安装这2个就可以了,先装第一个,然后第二个
第一部分 http://download.csdn.net/detail/qq873113580/4861371
第二部分 http://download.csdn.net/detail/qq873113580/4861523
上面的只是Silverlight4的东西,在后面如果要引用Blend里面的小编的时候最好把Silverlight5也装上
http://download.csdn.net/detail/htp111111sinacom/3912889
这样的话配置就搞定了
1,Rectangle长方行的一些用的东西
stroke属性设置实线边框,strokeDashArray="5,2"虚线边框
模糊边框,类似月亮的光晕
<Rectangle RadiusX="5" RadiusY="5" Width="300" Height="200" Fill="#FFFF0000" stroke="Blue" strokeThickness="2"> <Rectangle.Effect> <BlurEffect Radius="5" /> </Rectangle.Effect> </Rectangle>
Fill代表整个填充的颜色,BlurEffrct那里设置的光晕的大小,可以自己慢慢调,查看效果。
效果图,中间那个红色长方行的边框模糊的
整个背景的渐变效果。
<Rectangle Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"> <Rectangle.Fill> <LinearGradientBrush StartPoint="1,0" > <GradientStop Color="#CC4E45" Offset="0.2"/> <GradientStop Color="#B52D20" Offset="0.7"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle>
此代码可以放在任何需要的背景颜色或者前景色里面
offset,StartPoint,Color里面的可以自己去调
效果图如下
里面颜色的渐变就这这样
2,在App.XAML文件里面写全局样式,x:key类似ID,targettype代表这个样式在什么控件使用,我这里是用在Button控件上面
<Application.Resources><!--样式必须写在这个标签里面-->
<Style x:Key="MenuButton" targettype="Button">
<Setter Property="Width" Value=“100”>
<Setter Property="Height" Value=“100”>
........
</Style>
</Application.Resources>
在Main.XAML里面调用样式
<Button Style="{StaticResource MenuButton}"/>
这个是调用Style的语法{StaticResource x:key的值}
当然这个样式我们也可以自己定义一些模版,改变一下,就像上面那个面板的圆叉叉按钮一样
<Style x:Key="Close" targettype="Button"> <Setter Property="Width" Value="50"/> <Setter Property="Height" Value="25"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Border Width="22" Height="22" CornerRadius="15"> <!--。。。。。。。。。。。。。。。。。。。。。。。 text的值随便去赋值,只不过R代表的图标是(X)--> <TextBlock Foreground="#222" TextAlignment="Center" Text="r" FontSize="11" FontFamily="Webdings" VerticalAlignment="Center"/> <Border.Background> <RadialGradientBrush GradientOrigin="0.3,0.3"> <GradientStop Color="#FFF" Offset="0.15"/> <GradientStop Color="#777" Offset="1"/> </RadialGradientBrush> </Border.Background> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
下面这个是一些菜单按钮自定义的一些样式,效果图,如果对于Silverlight有点理解的人话,不难看出自定义的模版,就是在样式里面设置Temple属性,然后在值里面嵌入一个
controlTemplate之后,里面的东西就是和Main界面的写法一样的,这些代码可以收集起来,用的时候直接粘贴,然后在根据自己的需求修改
<Application.Resources> <!--菜单按钮样式--> <Style x:Key="MenuButton" targettype="Button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="Button">----从这之后自己设置类似界面效果一样的 <Grid> <Rectangle Width="75" Height="25" RadiusX="5" RadiusY="5" stroke="#5E1A14" Margin="10,0"> <Rectangle.Fill> <LinearGradientBrush StartPoint="1,0"> <GradientStop Color="#BD5E54" Offset="0.0"/> <GradientStop Color="#90322A" Offset="0.9"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <TextBlock FontSize="12" Text="{TemplateBinding Content}" Foreground="#F5F5F5" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </Application.Resources>
btn.Style = App.Current.Resources["MenuButtonHover"] as Style;
["这里面的是Style的Key"]
动态赋值颜色
第一种是用取色软件取出来的颜色,显示的数字,分别输入在1,2,3,4的位置,但是取色软件所取色的只有前三个,所以第4个参数用0就好了
grid.Background = new SolidColorBrush(Color.FromArgb(1,2,3,4));
这种赋值是一般比较简单的
grid.Background = new SolidColorBrush(Colors.Red);
提示框效果,类是HTML里面的Title效果,鼠标移动到控件上面去的时候,鼠标旁边显示一些提示
<Button ToolTipService.ToolTip="This is ToolTip text"/>第一种
第二种
<Button Content="Button"> <ToolTipService.ToolTip> <TextBlock Text="text"/> </ToolTipService.ToolTip> </Button>
两种方式,第一是直接,在标签里面加ToolTipService
另外一种是在标签里面使用
图片圆角效果 <Canvas x:Name="MainFrame" Background="AntiqueWhite" Margin="0,-200,600,0"> <Canvas.Clip> <RectangleGeometry RadiusX="10" RadiusY="10" Rect="0,500" /> </Canvas.Clip> ..下面是图片 </Canvas>
动画教程
动态注册
//实例化StoryBoard Storyboard storyBoard = new Storyboard(); //设置动画轨迹 DoubleAnimation doubleAnimationY = new DoubleAnimation(); //执行时间 doubleAnimationY.Duration = new Duration(TimeSpan.FromMilliseconds(500)); //变量大小 doubleAnimationY.To = 0; //绑定执行动画的对象 Storyboard.SetTarget(doubleAnimationY,this.Sale(“这个参数是控件对象,也就是说给哪个注册动画”)); //设置执行动画的属性 Storyboard.SetTargetProperty(doubleAnimationY,new PropertyPath("Height(这个是控件的属性,比如我现在动画的方式改变高度)")); //添加动画 storyBoard.Children.Add(doubleAnimationY); //执行动画 storyBoard.Begin();
静态注册
<UserControl> <UserControl.Resources> <Storyboard x:Name="SlideOut"> <DoubleAnimation Storyboard.TargetName="Slide" Storyboard.TargetProperty="这里的必须是Storyboard.TargetName对象的属性" Duration="00:00:00.50" To="200"/> </Storyboard> <Storyboard x:Name="SlideIn"> <DoubleAnimation Storyboard.TargetName="Slide" Storyboard.TargetProperty="这里的必须是Storyboard.TargetName对象的属性" Duration="00:00:00.50" To="0"/> </Storyboard> </UserControl.Resources> </UserControl> 在事件里面调用 SlideIn.Begin();
这些代码直接写在你要注册的界面里面,注意标签的嵌套,要不然不会有效果,调用的时候在代码里面,动画名字.Begin就好了
动静结合的动画,适用于创建一个动画,使用所有符合约定的控件
自定义全局动画,使用Behavior建议去看看这个有例子有代码
http://www.cnblogs.com/chengxingliang/archive/2012/03/19/2403331.html
当然前面的Behavior只是静态的,如果需要在后台代码里面动态调用可以去这里看看
自定义计时器
主要原理是,利用动画的完成事件,然后继续调用自己,进入是死循环状态。
在用户界面定义,并且注册完成事件
<UserControl.Resources>
<Storyboard x:Name="timer" Completed="timer_Tick" /> </UserControl.Resources>
在初始化的时候设置时间 timer.Duration = new TimeSpan(0,200); //200毫秒 timer.Begin(); void timer_Tick(object sender,EventArgs e) { //在这里处理定时器事件 timer.Begin(); }
利用Storyboard对象的Completed事件(动画结束之后触发)来模拟定时器。
计时器的类
dispatcherTimer timer = new dispatcherTimer();
timer.Tick += (sender,e) => {
这里是重复的执行的一些代码
};
timer.Interval = new TimeSpan(0,1);
timer.Start();
改变DataGrid列表的头的样式,默认下DataGrid是能修改Background样式的,所以要这样写
<Style x:Key="Heander" targettype="sdk:DataGridColumnHeader"> <Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="sdk:DataGridColumnHeader"> <Grid Background="Black" Height="20"/> </ControlTemplate> </Setter.Value> </Setter> </Style>
这些都是我初学的时候遇到的一些问题,我把他记录下,也许对新人会有点帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。