图像按钮和模拟Windows媒体播放器UI

本文介绍了一种使用图像按钮构建个性化用户界面的方法,通过四个不同状态的图像展示按钮的禁用、正常、悬停和按下状态,实现了类似WindowsMediaPlayer的界面效果。文中详细解释了双缓冲、透明背景和支持PNG格式等技术要点。

下载source - 789.43 KB

介绍

在我自己的共享软件“兰亭音乐中心”中,我希望UI看起来更有个性,所以我决定设计一些UI元素来构建应用程序。图像按钮是第一个也是最基本的元素。有了图像按钮,就很容易建立一个非常漂亮的用户界面。

在这个示例中,我使用image按钮构建一个看起来像Microsoft的Windows Media Player的表单。

背景

在蒙皮的形式,一些按钮看起来不规则,但实际上它也是一个矩形按钮。仅仅因为图像使它看起来不规则,我们可以使用图像来表示一个按钮。通常一个按钮有四种状态:禁用、正常、悬停和按下,所以我们可以使用四幅图像来表示一个按钮的四种状态。

有时我们使用PNG格式的图像,我们知道PNG支持透明背景。我们希望按钮能够支持透明,这样按钮的背景就不会被覆盖。

演示解决方案

Andy.UI

这是一个UI库,现在它只包含一个控件- imagebutton。我将添加更多的UI控件到这个库-一个显示UI元素用法的WinForm应用程序。现在只有图像按钮的演示,使用图像按钮来构建一个看起来像Windows Media Player的表单。

使用的代码

添加组装安迪。或将图像按钮控件添加到Visual Studio工具箱,然后您就可以使用它了。

的兴趣点

  1. 双缓冲

为了提高性能,图像按钮采用双缓冲防止闪烁。要做到这一点,只使用下面的代码在构造函数:

隐藏,复制CodeDoubleBuffered = true;

  1. 透明的

为了只支持传输,您需要下面给出的代码。但我想说的是,这是非常透明的。当图像按钮绘制时,它会要求它的父对象绘制它的背景,所以它看起来是透明的。

隐藏,复制CodeSetStyle ( ControlStyles.UserPaint, true );
SetStyle ( ControlStyles.SupportsTransparentBackColor, true );
BackColor = Color.Transparent;

3.图像属性

我们需要四个图像来表示按钮状态;通常我们需要四个图像类型的变量。这有点麻烦,所以我用字典来存储图像,按钮状态是关键。

隐藏,复制Code///
/// images that state used
///
private Dictionary<ButtonState,Image> mImages = new Dictionary<ButtonState, Image> ( );
///
/// Get or set normal state image
///
[DefaultValue ( null )]
public Image NormalImage
{
get
{
if ( !mImages.ContainsKey ( ButtonState.Normal ) )
mImages.Add ( ButtonState.Normal, null );
return mImages [ ButtonState.Normal ];
}
set
{
mImages [ ButtonState.Normal ] = value;
Invalidate ( );
}
}

注意,如果是这种模式,建议使用ImageButton类中的属性。这是因为键只有在它获得属性时才能添加到字典中。或者您可以在构造函数中向字典添加状态键。

  1. 设计师

第一次向表单添加ImageButton时,没有状态图像,因此ImageButton上没有显示。在设计表单时,判断按钮的位置并不方便。所以这里有一个ImageButtonDesigner,在设计时只在按钮上画一个灰色的矩形,没有正常状态的图像,因此你知道按钮在哪里。

历史

2008-5-28 -创建文章

本文转载于:http://www.diyabc.com/frontweb/news673.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值