WinForm中按钮等控件的背景渐变色重绘

注:brush通过起止坐标来控制重绘范围及方向。比如从上到下渐变时,brush第二个Point参数是左下角坐标。

 1         private void PaintGradientBackground(Button btn)
 2         {
 3             Bitmap newGradientBackImg = new Bitmap(btn.Width, btn.Height);
 4             LinearGradientBrush brush = new LinearGradientBrush(new PointF(0, 0), new PointF(0, btn.Height), GlobalParams.UnSelected_TreeTab_Top_Color, GlobalParams.UnSelected_TreeTab_Bottom_Color);
 5             Graphics gr = Graphics.FromImage(newGradientBackImg);
 6             gr.FillRectangle(brush, new RectangleF(0, 0, btn.Width, btn.Height));
 7             //btn.BackColor = Color.Transparent;
 8             btn.BackgroundImage = newGradientBackImg;
 9         }
10
11         private void ClearGradientBackground(Button btn)
12         {
13             btn.BackgroundImage = null;
14         }

原文地址:https://www.cnblogs.com/wyp1988/p/9844453.html

时间: 2024-10-25 19:23:36

WinForm中按钮等控件的背景渐变色重绘的相关文章

WPF中嵌入WinForm中的webbrowser控件

原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能使用.决定还是使用WinForm中的webbrowser.要想在WPF中使用WinForm控件,查看MSDN,需经过以下步骤. 创建名为 HostingWfInWpf 的 WPF 应用程序项目. 在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 Wi

WinForm中调用WPF控件

WinForm中调用WPF控件 在WinForm中可以使用WPF中的控件,或者由WPF创建的自定义控件: 步骤1:创建WinForm工程: 步骤2:在WinForm工程的解决方案资源管理器中,在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程: 步骤3:在WPF中创建自定义的控件,或者添加WPF控件到面板上: 步骤4:在WinForm面板上添加ElementHost控件(工具箱中): 步骤5:生成解决方案: 步骤6:在刚刚的ElementHost中的Child属性中添加刚刚

关于CEdit控件的透明(重绘)

摘自:http://www.jcwcn.com/html/VC/10_19_51_12.htm 做一个透明的Edit控件的主要问题是字符的输出,在Edit里输出的刷新有几个时机,一个是在接收到键盘或鼠标消息的时候 ,还有就是在接收到WM_PAINT消息.刷新的时候也不是全部重画,所以想通过在继承的Edit类中处理WM_PAINT消息是行不通的.但是Edit控件自己总是知道怎么去刷新,因此只要给控件发消息,让其自己来刷新就可以了.通过使用spy++的得知需要刷新有几个时机,一个是按键的时候,内容变

WINFORM中加入WPF控件并绑定数据源实现跨线程自动更新

1. WINFORM中添加两个ElementHost,一个放WPF的Button,一个放WPF的TextBox.其中TextBox与数据源绑定,实现跨线程也可以自动更新,而不会出现WINFORM的TextBox控件与数据源绑定后,存在子线程中更新数据源报错(跨线程更新控件)的情况. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System

Winform中使用用户控件实现带行数和标尺的RichTextBox(附代码下载)

场景 RichTextBox控件允许用户输入和编辑文本的同时提供了比普通的TextBox控件更高级的格式特征. 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个用户控件GuageRichTextBox. 编辑用户控件,相当于自己定义了一个控件,和其他控件一样在窗体中使用,是一个类. 然后打开其设计页面,放置一个RichTextBox 然后进入其代码 usi

c#在WinForm中重写ProgressBar控件(带%的显示)

#region 定义textProgressBar控件的类 namespace csPublish { [ToolboxItem(true)] class textProgressBar : System.Windows.Forms.ProgressBar { [System.Runtime.InteropServices.DllImport("user32.dll ")] static extern IntPtr GetWindowDC(IntPtr hWnd); [System.R

winform 中调用用户控件中 嵌套用户控件的事件

工作了很久,一直没有很深入的了解C#中的委托和事件. 来到新公司,主要的工作就是使用委托和事件操作数据.一下子不知道该如何下手.各方请教大神,得出下面的方法 1. 在A控件中定义一个事件,B控件触发的时候,调用一下这个事件.然后再在A的父级控件中写方法,+=的方式把方法委托给A的事件就行了 窗体: private void Form1_Load(object sender, EventArgs e)        {            UC_Content content = new UC_

QT中给各控件增加背景图片(可缩放可旋转)的几种方法

http://blog.csdn.net/liukang325/article/details/44832397 1. 给QPushButton 增加背景图片:背景图片可根据Button大小自由缩放. [cpp] view plaincopy void setButtonBackImage(QPushButton *button,QString image,int sizeW, int sizeH) { //163,163为原始分辨率,这里稍做了调整. QPixmap pixmap(image)

QT中给各控件增加背景图片的几种方法

1. 给QPushButton 增加背景图片:背景图片可根据Button大小自由缩放. void setButtonBackImage(QPushButton *button,QString image,int sizeW, int sizeH) { //163,163为原始分辨率,这里稍做了调整. QPixmap pixmap(image); QPixmap fitpixmap=pixmap.scaled(163,163).scaled(sizeW, sizeH, Qt::IgnoreAspe