Sliverlight之 特效

1,OpacityMask控件的部分渐隐(见Project16)

(1) 控件的OpacityMask有什么作用

说明:
设置所选区域不透明度的画笔,一般结合LinearGradientBrush或RadialGradientBrush使用
般用它来实现实现渐隐效果

将一个图片实现渐隐效果,需要在一个渐变点设置Color="Transparent"

<Image.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="red" Offset="0"></GradientStop>
<GradientStop Color="Transparent" Offset="1"></GradientStop> 
</LinearGradientBrush>
</Image.OpacityMask>

 


另一种

<Image.OpacityMask>
<RadialGradientBrush Center="0.5,0.5">
<GradientStop Color="Red" Offset="0"></GradientStop>
<GradientStop Color="Transparent" Offset="1"></GradientStop>
</RadialGradientBrush>
</Image.OpacityMask>

 

(2) OpacityMask是什么类型

说明:
OpacityMask是一个Brush类型

(3) 将一个TextBox实现一个渐隐效果

说明:

像TextBox可以直接用Background设置也能实现类似的渐隐效果,但像Image就没有Background设置了,通过OpacityMask就很方便

<TextBox Background="Gray">
<TextBox.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="Red" Offset="0"></GradientStop>
<GradientStop Color="Transparent" Offset="1"></GradientStop>

</LinearGradientBrush>

</TextBox.OpacityMask>
</TextBox>

 

 


2,两种效果Effect_模糊和投影(见Project17)

 

(1) Effect有哪两种效果

说明:
BlurEffect 模糊
DropShadowEffect 投影


(2)Effect是什么类型

说明:Effect就是Effect类型

 

(3)在一个TextBox中添加文字,并将其模糊(在中文帮助里查看BlurEffect怎么用)

说明:
通过Radius设置模糊程度

<TextBox.Effect>
<BlurEffect Radius="10"></BlurEffect>
</TextBox.Effect>

 

(4)BlurEffect的一个重要属性是什么,怎么使用

说明:
通过Radius设置模糊程度,一般值的范围是1--100


(5)将一个Button添加一个投影效果(在中文帮助里查看DropShadowEffect怎么用)

说明:

<Button.Effect>
<DropShadowEffect Color="Red" Direction="225" ShadowDepth="7" BlurRadius="20" Opacity="20"></DropShadowEffect>
</Button.Effect>

 

(6)DropShadowEffect有哪几个重要属性,分别怎么使用

说明:
Color="Red" 设置投影的颜色
Direction="225" 投影的位置
ShadowDepth="7" 投影的距离
BlurRadius="20"  投影的模糊程度
Opacity="20" 设置边缘的不透明度

 


3,六种变换(见Project18)

 

(1) 有哪六种变换

说明:

RotateTransform 按一定角度旋转
ScaleTransform 等比例缩放
SkewTransform 扭曲歪斜
TranslateTransform 位移
TransformGroup 复合变换
MatrixTransform 矩阵变换 


(2) RenderTransform是什么类型

说明:
RenderTransform是Transform类型
一般用作控件的属性,使控件发生变换

 

(3) 如何让一个按钮呈15度旋转(在中文帮助里查看RotateTransform怎么用)

说明:

<Button.RenderTransform>
<RotateTransform Angle="90" CenterX="60" CenterY="30"></RotateTransform> 
</Button.RenderTransform>

 


(4) RotateTransform有哪几个重要属性,分别怎么使用

说明:
RotateTransform使控件可以按一定角度旋转
Angel: 旋转角度,默认以左上角为旋转中心点.为正值则按顺时针方向旋转,为负值则按逆时针方向旋转
CenterX,CenterY 定义旋转的中心点

 

(5) 将一个TextBox持续不断的顺时针转动(用到定时器)

说明:

DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromMilliseconds(200);
dt.Tick += dt_Tick;
dt.Start();

void dt_Tick(object sender, EventArgs e)
{
myRotate.Angle += 5;

}

 


(6) 将一张图片按照中心点位置,进行缩放
说明:
将图片等比例放大为原来的2倍

<Image.RenderTransform>
<ScaleTransform ScaleX="2" ScaleY="2" CenterX="50" CenterY="50"></ScaleTransform>
</Image.RenderTransform>

 


(6) ScaleTransform,ScaleX和ScaleY的作用是什么,当为负值时有什么效果,它与CenterX,CenterY有什么关系(用示例演示说明)

说明:
ScaleTransform 等比例缩放
ScaleX和ScaleY 为控件在X和Y轴的缩放比例,值为原控件的缩放倍数.当为负值时,会先翻转例置再缩放
CenterX和CenterY为缩放的焦点

 

(7) 将一个视频倒影播放效果

说明:

<MediaElement.RenderTransform>
<ScaleTransform ScaleY="-1" CenterY="50"></ScaleTransform>
</MediaElement.RenderTransform>

 


(8) 如何让一个图片做成倾斜的效果(在中文帮助里查看SkewTransform怎么用)

说明:

<Image.RenderTransform>
<SkewTransform AngleX="0" AngleY="-30" CenterX="50" CenterY="50"></SkewTransform>
</Image.RenderTransform>

 


(9) SkewTransform有哪几个重要属性,分别怎么使用

说明:
SkewTransform使控件扭曲歪斜

AngleX:没X轴逆时针旋转
AngelY:沿Y轴顺时针旋转
CenterX和CenterY


(10) 如何将一个图片实现位移的效果(在中文帮助里查看TranslateTransform怎么用)

说明:

<Image.RenderTransform>
<TranslateTransform X="10" Y="30"></TranslateTransform>
</Image.RenderTransform>

 


(11) TranslateTransform有哪几个重要属性,怎么使用(如果为负值,有什么效果)

说明:
TranslateTransform 沿X和Y轴位移

X: 沿X轴位移,单位像素
Y: 沿Y轴位移,单位像素

注意:X和Y若为负值,则按相反方向位移

 

(12) 什么是复合变换,它用什么标签表示,用一个示例演示一下效果

说明:

复合变换使用标签TransformGroup,表示一个容器,可以将多种Transform效果放进去

<TextBlock.RenderTransform>
<TransformGroup>
<RotateTransform Angle="30"></RotateTransform>
<SkewTransform AngleX="20"></SkewTransform>
</TransformGroup>
</TextBlock.RenderTransform>

 


(13) 什么是3D投射效果,用什么标签表示

说明:

3D投射,可以使控件在三维空间旋转
用标签PlaneProjection实现
属性:RotationX,RotaionY,RotaionZ 分别以X轴,Y轴,Z轴旋转的角度,可以为负值

<Image.Projection>
<PlaneProjection RotationX="30" RotationY="60" RotationZ="60"></PlaneProjection>
</Image.Projection>

 


(14) 将一个图片实现3D翻转的效果(使用定时器修改RotationX)

说明:

前端:

<Image.Projection>
<PlaneProjection RotationX="0" RotationY="0" RotationZ="0" x:Name="myPlan"></PlaneProjection>
</Image.Projection>

 

代码:

DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromMilliseconds(200);
dt.Tick += dt_Tick;
dt.Start();

void dt_Tick(object sender, EventArgs e)
{
myPlan.RotationY += 10;
myPlan.RotationX += 10;
myPlan.RotationZ += 10;
}

 


(15) 用MatrixTransform演示一下矩阵变换的效果

说明:
矩阵变换,有点复杂

<Rectangle.RenderTransform>
<MatrixTransform>
<MatrixTransform.Matrix >
<Matrix OffsetX="20" OffsetY="30" M12="0.3" />
</MatrixTransform.Matrix>
</MatrixTransform>
</Rectangle.RenderTransform>

 

posted @ 2015-04-08 14:28  华子的幸福生活  阅读(763)  评论(5编辑  收藏  举报