silverlight百叶窗
来源:互联网 发布:手拉鸡专卖网淘宝付款 编辑:程序博客网 时间:2024/04/26 08:11
刚学习Silverlight,想实现百叶窗等效果,找了好多资料,没有源码。
我就自己琢磨了一个方法,貌似Silverlight的动画也能实现,可惜我不会啊。
下面是我的方法:
1、ImageClone:复制原图像一块块区域到目标图像
public class ImageClone
{
WriteableBitmap gBitmapSoure;
public WriteableBitmap gBitmapDest;
public ImageClone(Image imageSoure, Image imageDest,int imageWitdth, int imageHeight)
{
gBitmapSoure = new WriteableBitmap(imageSoure, null);
gBitmapDest = new WriteableBitmap(imageDest, null);
Width = imageWitdth;
Height = imageHeight;
}
private int width;
private int height;
public int Width
{
get { return width; }
set { width = value; }
}
public int Height
{
get { return height; }
set { height = value; }
}
public void Bitbit(int dX, int dY, int w, int h, int sX, int sY)
{
for (int th = dY, j = sY; th < h + dY && j < h + sY; th++, j++)
{
for (int tw = dX, i = sX; tw < w + dX && i < w + sX; tw++, i++)
{
gBitmapDest.Pixels[th * width + tw] = gBitmapSoure.Pixels[j * width + i];
}
}
}
2、调用ImageClone的方法实现百叶窗
int i = 1;
int count = 1;
DispatcherTimer myDispatcherTimer;
ImageClone imageClone;
public MainPage()
{
InitializeComponent();
……….
myDispatcherTimer = new DispatcherTimer();
}
private void btnOK_Click(object sender, RoutedEventArgs e)
{
string status = ((State)cobState.SelectedItem).Way.ToString();
imageClone = new ImageClone(imgSoure, imgDest, 200, 130);
StartTimer(10, status);
}
public void StartTimer(int millisecond, string status)
{
//创建间隔时间
myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, millisecond);
//创建到达间隔时间后需执行的函 数
switch (status)
{
case "向下百叶窗:
myDispatcherTimer.Tick += new EventHandler(DownWindows_Tick);
break;
……….
}
//开启计时器
myDispatcherTimer.Start();
}
public void DownWindows_Tick(object o, EventArgs sender)
{
for (int j = 0; j < imageClone.Height/10; j++)
{
imageClone.Bitbit(0, j * 10, imageClone.Width, count, 0, j * 10);
imgDest.Source = imageClone.gBitmapDest;
}
count++;
i++;
if (i > 10 || count > imageClone.Height)
myDispatcherTimer.Stop();
}
- silverlight百叶窗
- 百叶窗
- 百叶窗特效
- 实现百叶窗效果图
- asp百叶窗实现
- flex 百叶窗效果
- flex百叶窗效果
- felx百叶窗效果
- 页面产生百叶窗脚本
- 窗体百叶窗效果
- J2ME实现百叶窗效果
- 百叶窗式面板组
- jQuery滤镜百叶窗幻灯片
- WPF Clip实现百叶窗
- OpenCV——百叶窗
- Jquery 百叶窗实现原理
- 百叶窗效果集
- 百叶窗动画思路
- 经典推荐之嵌入式系统 Boot Loader 技术内幕(詹荣开)
- 拷贝构造函数应用分析
- chmod命令详细用法
- 函数指针应用
- 东莞抢先物联网装备制造
- silverlight百叶窗
- mutable学习
- C#网络编程(同步传输字符串) - Part.2
- 自卑的程序员和愚蠢的管理者
- 第三方设备
- 同步Windows Mobile SIM卡短信
- C与C++社区混战,C#会重蹈覆辙吗?
- 开源界的5大开源许可协议
- C#会重蹈覆辙吗?系列之1:论C#性能不能承受之慢