Kre*_*dns 4 c# windows-vista visual-studio
我正在运行windows vista,并希望看起来像普通的vista程序.关于如何构建Vista Style应用程序是否有任何非常好的教程/文章?我还想学习如何使用本机代码并将其转换为C#,如本例所示.
如果您正在使用WinForms,则相对容易实现它,因为WinForms基于本机Win32控件.许多控件都有通过设置其他标志(通过向本机控件发送消息)或使用SetWindowTheme来增强渲染的方法.这可以通过Interop实现.
举个例子,拿一个简单的ListView.如果你想要一个资源管理器风格的列表视图,你可以在ListView的公开句柄上使用SetWindowTheme.我们使用interop来访问本机SetWindowTheme()函数,挂钩ListView的窗口过程并在创建控件时应用主题:
static class NativeMethods
{
public const int WM_CREATE = 0x1;
[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
public extern static int SetWindowTheme(
IntPtr hWnd, string pszSubAppName, string pszSubIdList);
}
class ListView : System.Windows.Forms.ListView
{
protected override void WndProc(ref Message m)
{
if (m.Msg == Win.WM_CREATE) {
NativeMethods.SetWindowTheme(this.Handle, "Explorer", null);
}
base.WndProc(ref m);
}
}
Run Code Online (Sandbox Code Playgroud)
默认ListView和我们的增强版之间的区别: ListView差异http://img100.imageshack.us/img100/1027/62586064nt6.png
不幸的是,每种控制都没有一种简单的方法.有些控件甚至没有任何WinForms包装器.最近我在这篇CodeProject文章中偶然发现了一个很好的编译,值得一看.也可能有管理库包装这个.
| 归档时间: |
|
| 查看次数: |
7794 次 |
| 最近记录: |