在Winform项目中,有时需要将UI变成适应Vista/Windows7/8/10的风格,通过"选用"以下代码来使你的UI支持系统主题渲染.

注:该功能不支持XP,建议使用DS控件库中的WIN7风格控件。

新建工程,添加相关控件,复制粘贴以下代码即可

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DSAPI.Win7特性.任务栏特效.设置任务栏进度(Me.Handle, 50, 100)
'*******缩略图按钮标识ID至少应200以上,以避免系统冲突
'------------------
Dim Itm1 As New DSAPI.Win7特性.任务栏缩略图.缩略图控制按钮
With Itm1
.标记 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮状态.启用
.标识ID = 500
.标志组合 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.提示 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.图标 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.标记
.图标 = My.Resources.D__32_.GetHicon
.提示 = "上一首"
End With
'------------------
Dim Itm2 As New DSAPI.Win7特性.任务栏缩略图.缩略图控制按钮
With Itm2
.标记 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮状态.启用
.标识ID = 501
.标志组合 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.提示 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.图标 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.标记
.图标 = My.Resources.D__41_.GetHicon
.提示 = "暂停"
End With
'------------------
Dim Itm3 As New DSAPI.Win7特性.任务栏缩略图.缩略图控制按钮
With Itm3
.标记 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮状态.启用
.标识ID = 502
.标志组合 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.提示 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.图标 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.标记
.图标 = My.Resources.D__31_.GetHicon
.提示 = "播放"
End With
'------------------
Dim Itm4 As New DSAPI.Win7特性.任务栏缩略图.缩略图控制按钮
With Itm4
.标记 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮状态.启用
.标识ID = 503
.标志组合 = DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.提示 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.图标 + DSAPI.Win7特性.任务栏缩略图.缩略图按钮标志.标记
.图标 = Me.Icon.ToBitmap.GetHicon
.提示 = "帮助"
End With
DSAPI.Win7特性.任务栏特效.添加缩略图控制按钮(Me.Handle, New DSAPI.Win7特性.任务栏缩略图.缩略图控制按钮() {Itm1, Itm2, Itm3, Itm4})
AddHandler DSAPI.Win7特性.任务栏特效.缩略图按钮被点击, AddressOf ItmClick
End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DSAPI.Win7特性.任务栏特效.初始化(Me)
DSAPI.控件相关.Form窗体.窗体支持鼠标拖动(Me, True)
Me.ForeColor = Color.FromArgb(255, 2, 2, 2)
For Each S As String In [Enum].GetNames(ListView1.View.GetType)
ComboBox1.Items.Add(S)
Next
ComboBox1.SelectedIndex = 0
For Each S As String In [Enum].GetNames(GetType(DSAPI.Win7特性.任务栏缩略图.任务栏进度条状态))
ComboBox2.Items.Add(S)
Next
ComboBox2.SelectedIndex = 0
End Sub
Sub ItmClick(ID As Integer)
Select Case ID
Case 500
MsgBox("点击了上一首")
Case 501
MsgBox("点击了暂停")
Case 502
MsgBox("点击了播放")
Case 503
MsgBox("点击了帮助")
End Select
End Sub Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
TreeView1.ExpandAll()
End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
ListView1.View = ComboBox1.SelectedIndex
End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Try
Process.Start("SystemPropertiesAdvanced.exe")
Catch
End Try
End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If Form2.Visible = True Then Exit Sub
Form2.Show()
DSAPI.Win7特性.在指定窗体指定区域显示源窗体缩略图(Form2.Handle, New Rectangle(0, 0, Me.Width, Me.Height), Me.Handle, False, 255)
End Sub Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
DSAPI.Win7特性.设置窗体为磨砂透明效果(Me)
End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
DSAPI.Win7特性.使控件应用Win7资源管理器风格(Me)
End Sub Private Sub TrackBar1_ValueChanged(sender As Object, e As EventArgs) Handles TrackBar1.ValueChanged
DSAPI.Win7特性.任务栏特效.设置任务栏进度(Me.Handle, TrackBar1.Value, TrackBar1.Maximum) End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
DSAPI.Win7特性.任务栏特效.设置任务栏进度条状态(Me.Handle, GetV(ComboBox2.SelectedItem.ToString))
End Sub
Private Function GetV(S As String) As Integer
Dim Ints() As Integer = [Enum].GetValues(GetType(DSAPI.Win7特性.任务栏缩略图.任务栏进度条状态))
For Each T As Integer In Ints
If [Enum].GetName(GetType(DSAPI.Win7特性.任务栏缩略图.任务栏进度条状态), T) = S Then
Return T
End If
Next
Return 0
End Function
End Class

  

DSAPI WIN7风格的更多相关文章

  1. DSAPI WIN7磨砂+窗体投影组合

    你可以使用DSAPI和DS控件库组合多种特效,以下是透明窗体+WIN7磨砂+窗体投影组合效果 设计界面 编写代码 Private Sub Form1_Load(sender As Object, e ...

  2. DSAPI+DS控件库 Windows7风格控件演示

    效果图 部分代码 DSAPI.Win7特性.任务栏特效.初始化() '这句非常重要,很多对任务栏特性的操作都需要先初始化 DSAPI.Win7特性.设置任务栏窗口缩略图(Me, My.Resource ...

  3. DSAPI多功能.NET函数库组件

    DSAPI.dll不定期更新,增加功能,故无法每次都发到网上,如果需要获得最新版DSAPI.dll的,请到QQ群:419130936群共享里下载. 简介     dsapi.dll是一款基于.net平 ...

  4. MFC学习笔记3---使对话框风格与系统统一

    有一件郁闷了我很久的事情,在VS中编辑对话框或者点击预览时都是以Win7风格体现的按钮及对话框: 点击上图测试对话框: 然而生成的应用程序却是这样的: 这样人很不爽啊,按钮风格回到了N年前的版本,复古 ...

  5. CDHtmlDialog的基本使用

    转自:http://blog.csdn.net/sky04/article/details/7587406 因为我的部门只有我一个人(无奈之极,只有我一个做C++的,其他的都在做C#),所以我去跟技术 ...

  6. XP之后Windows的一些变化

    看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错.但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发 ...

  7. 基于OSGI.Net的图形界面系统

    在2013年的十月份有幸接触了osgi.net和iopenworks的创始人,了解和学习的插件式开发,开始了后台数据的处理生涯. 第一个有图形界面的系统——智能农业的环境监测系统,其实在这个系统中所有 ...

  8. 堪称神器的Windows软件推荐

    更多软件使用技巧.破解软件以及硬件选购知识,欢迎加入我的QQ群(701974765)与我们交流!! 先贴上软件列表,详细描述后期更新,可自行百度 TrafficMonitor CPU.内存.网速资源监 ...

  9. Ghost Win10系统X64位和32位10041装机版下载

    更多系统下载尽在系统妈:http://www.xitongma.com 特别说明: 1.C:盘分区须至少15GB(安装过程有大量的解压临时文件),安装完成后C:盘占用10GB左右! 2.安装之后如有硬 ...

随机推荐

  1. visual studio2015中开发python

    之前下载了visual studio2017但是发现很不好用,不如使用matlab与visual studio混合编程就根本找不到visual studio,只有下了visual studio2015 ...

  2. vue笔记 递归组件的使用

    递归组件 什么是递归组件? 组件自身去调用组件自身. 代码示例 DetailList.vue(子组件-递归组件) <template> <div> <div class= ...

  3. PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术.(ajax概述,ajax使用的技术,需要注意的 问题,在PHP应用ajax技术的应用 ...

  4. 『Möbius函数与Möbius反演』

    Möbius函数 定义 设正整数\(n\)算数基本定理分解后为\(n=\prod_{i=1}^{k}p_i^{a_i}\),定义函数 \[ \mu(n)= \begin{cases} 0\ \ (\e ...

  5. C# 通俗说 委托(和事件)

    1.闲聊 编码一两年, 我走过了字段, 我跑过了类, 却翻不过方法.(不能灵活使用方法吧) (写这篇博客全程听将夜中<永夜>歌曲写完的,一气呵成,安利一下) 2.叙事 我们在编码中,经常捣 ...

  6. gitbook 入门教程之快速体验

    本文主要介绍三种使用 gitbook 的方式,分别是 gitbook 命令行工具,Gitbook Editor 官方编辑器和 gitbook.com 官网. 总体来说,三种途径适合各自不同的人群,找到 ...

  7. Alpha阶段Scrum Meeting合集(江山代有才人秃队)

    Day URL 第一天 第1篇Scrum冲刺博客 第二天 第2篇Scrum冲刺博客 第三天 第3篇Scrum冲刺博客 第四天 第4篇Scrum冲刺博客 第五天 第5篇Scrum冲刺博客 第六天 第6篇 ...

  8. SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper

    上篇文章我们介绍了SpringBoot和MyBatis的整合,可以说非常简单快捷的就搭建了一个web项目,但是在一个真正的企业级项目中,可能我们还需要更多的更加完善的框架才能开始真正的开发,比如连接池 ...

  9. CF592D Super M

    嘟嘟嘟 首先这题虽然不是很难,但是黄题是不是有点过分了--好歹算个蓝题啊. 手玩样例得知,这哥们儿瞬移到的城市\(A\)一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市\(B\)和\ ...

  10. Cocoa包管理器之Carthage详解及CocoaPods中心化+Carthage的二进制化

    上篇博客详细的聊了CocoaPods的相关内容,今天我们就来介绍另一个Cocoa的包管理器Carthage.在上家公司用Swift开发工程时,用的就是Carthage.Carthage诞生于14年11 ...