c# 这个桌面效果能用c#实现吗,进来看看

maomingao100 2014-10-09 12:59:49

360的安装效果,这个好像很漂亮呀,不是知道是用什么实现的,用图片好像不行呢
...全文
661 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
dylike 2014-10-10
  • 打赏
  • 举报
回复
引用 15 楼 wuyazhe 的回复:
[quote=引用 14 楼 dylike 的回复:] 这个是完全可以的.主要是用PS等工具画好透明的图片,然后用DSAPI.DLL显示出来即可.至于进度变化,要实时重新绘制.
擦,你的还有这功能?不会就是设置窗体Region的吧。还是用了那个SetWindowLayer的?[/quote] 好东西给了你你也不知道呀.只要一句代码 DSAPI.图形图像.透明窗体.显示图像(this,PNG图片,透明度0-255) 如果要拖动就 DSAPI.图形图像.透明窗体.窗体支持鼠标拖动(this,true)
dylike 2014-10-10
  • 打赏
  • 举报
回复
DSAPI.图形图像.透明窗体.显示图像(Me, 背景, 255) 参数:要显示图像的窗体,要显示的图片,透明度(0-255) 这句将输出画面到屏幕上,当然在这句面前也可以使用一些其他效果.比如: DSAPI.图形图像.图像特效.色彩.反色(背景) DSAPI.图形图像.图像特效.色彩.保留通道(背景, DSAPI.图形图像.图像特效.色彩.色彩通道.绿) DSAPI.图形图像.图像特效.色彩.灰度(背景) DSAPI.图形图像.图像特效.色彩.投影效果(背景, 10) DSAPI.图形图像.透明窗体.显示图像(Me, 背景, 255)
dylike 2014-10-10
  • 打赏
  • 举报
回复



查看运行效果

引用DSAPI.DLL
把上面两个图片放到工程资源,添加Timer控件

Public Class Form1
Private 背景 As Bitmap = Nothing
Private 播放帧 As Integer = 0
Private 向后播放 As Boolean = True
Private 停止播放 As Boolean = False
Private 背景大小 As Size
Private 文字层 As New DSAPI.图形图像.彩色文字图像
Private 进度值 As Integer = 0
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
停止播放 = True
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.DoubleBuffered = True
背景大小 = My.Resources.V.Size
Me.Size = My.Resources.V.Size
DSAPI.图形图像.透明窗体.显示图像(Me, My.Resources.V, 255)
DSAPI.图形图像.透明窗体.窗体支持鼠标拖动(Me, True)
'--初始化文字渲染引擎
With 文字层
.画布尺寸 = 背景大小
.字体 = New Font("微软雅黑", 18)
.绘制描边 = True
.描边颜色 = Color.Black
.绘制阴影 = True
.阴影颜色 = Color.Black
.文字清晰度 = Drawing.Text.TextRenderingHint.AntiAlias
.文字颜色 = Color.White
End With
CheckForIllegalCrossThreadCalls = False
Dim T As New Threading.Thread(AddressOf 播放动画)
T.Start()
End Sub
Private Sub 播放动画()
Try
While 停止播放 = False
If 向后播放 Then
播放帧 += 2
If 播放帧 > 60 Then
向后播放 = False
End If
Else
播放帧 -= 2
If 播放帧 < 0 Then
向后播放 = True
End If
End If
创建背景()
Threading.Thread.Sleep(30)
End While
Catch
End Try
End Sub
Private Sub 创建背景()
Try
背景 = Nothing
背景 = New Bitmap(背景大小.Width, 背景大小.Height)
Using G As Graphics = Graphics.FromImage(背景)
'---绘制光线层
Dim Rct As Rectangle = New Rectangle(播放帧, 播放帧, 背景大小.Width - 播放帧 * 2, 背景大小.Height - 播放帧 * 2)
G.DrawImage(My.Resources._1, Rct, New Rectangle(0, 0, 背景大小.Width, 背景大小.Height), GraphicsUnit.Pixel)
'---绘制前景层
G.DrawImage(My.Resources.V, New Rectangle(0, 0, 背景大小.Width, 背景大小.Height), New Rectangle(0, 0, 背景大小.Width, 背景大小.Height), GraphicsUnit.Pixel)
'---绘制文字层
Try
Dim Img As Bitmap = 文字层.输出图像
If Img IsNot Nothing Then
G.DrawImage(Img, New Rectangle(Me.Width / 3, Me.Height - 100, Img.Width, Img.Height), New Rectangle(0, 0, Img.Width, Img.Height), GraphicsUnit.Pixel)
End If
Catch
End Try
End Using
DSAPI.图形图像.透明窗体.显示图像(Me, 背景, 255)
Catch
End Try
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
进度值 += 1
If 进度值 > 100 Then 进度值 = 0
文字层.代码文本 = "<color=255,255,255>载入进度:</color><color=100,255,0><b>" & 进度值 & "%</b></color>"
End Sub
End Class
aby913 2014-10-10
  • 打赏
  • 举报
回复
这个应该不是直接贴图片那么简单吧
dylike 2014-10-09
  • 打赏
  • 举报
回复
这个是完全可以的.主要是用PS等工具画好透明的图片,然后用DSAPI.DLL显示出来即可.至于进度变化,要实时重新绘制.
兔子-顾问 2014-10-09
  • 打赏
  • 举报
回复
那个安装界面是自己写的程序,不是用任何其他的打包工具做的。
bigbaldy 2014-10-09
  • 打赏
  • 举报
回复
这个主要是美工好就行了,弄个gif即可
  • 打赏
  • 举报
回复
winform可以做到。
xxxuan 2014-10-09
  • 打赏
  • 举报
回复
安装就是copy,你再做个进度条不就ok了
whatdoyousay 2014-10-09
  • 打赏
  • 举报
回复
引用 2 楼 xxxuan 的回复:
wpf做的,很容易
不是登陆界面,是安装时的画面
流浪若相惜 2014-10-09
  • 打赏
  • 举报
回复
wpf如何实现?我学习一下!
mjp1234airen4385 2014-10-09
  • 打赏
  • 举报
回复
用wpf和winform都木有问题。 就是贴个图片,画个进度条
  • 打赏
  • 举报
回复
用 0、1、0、1 也能编写呢! 关键就是在有限的时间内,能不能有点开发效率。那些一看就没有效率、“理论上可以”但实际上一般人做不完善的做法,我们直接就说它“不行”,而不用说它“也行”。
绿领巾童鞋 2014-10-09
  • 打赏
  • 举报
回复
区域窗体,控制透明度,贴图
l2999019 2014-10-09
  • 打赏
  • 举报
回复
WPF可以实现,WinFrom..其实也可以,只不过可能会比较麻烦..用GDI+绘图 实现也行..
sunny906 2014-10-09
  • 打赏
  • 举报
回复
用WPF很容易实现
xxxuan 2014-10-09
  • 打赏
  • 举报
回复

看这个界面
wwei466 2014-10-09
  • 打赏
  • 举报
回复
那是C++写的,QQ,MSN,QQ音乐什么的都是,叫做directUI
wendys1127 2014-10-09
  • 打赏
  • 举报
回复
winform也应该可以,不过没试验过。具体我的简单想法是图标用图片,反正都是动态旋转,其次下面那个用label就够了
猴子写代码 2014-10-09
  • 打赏
  • 举报
回复
gdi自定义控件
加载更多回复(4)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧