画像をいじる
画像をいじる
プログラムから画像をいじる。
Enabledが常にtrueだと想定してたんだけど、やっぱりfalseの時もあるよね、ってことになったりする。
で、ボタンに貼り付けてた画像はtrueの時のものしかない。
falseになったら少し暗くしたいんだけど、デザイナに発注はめんどくさい。
そんなときにたまにやる。こんな感じ。
button2_Clickはテスト用。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Image savedImage_; private void button1_EnabledChanged(object sender, EventArgs e) { Button b = (Button)sender; if (b.Enabled) { b.BackgroundImage = savedImage_; return; } savedImage_ = b.BackgroundImage; Image im = (Image)savedImage_.Clone(); Graphics g = Graphics.FromImage(im); g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; SolidBrush mask = new SolidBrush(Color.FromArgb(32, Color.Black)); g.FillRectangle( mask, b.ClientRectangle); g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy; b.BackgroundImage = im; } private void button2_Click(object sender, EventArgs e) { button1.Enabled = !button1.Enabled; } } }