2015-10-09 4 views
0

У меня есть небольшая проблема для решения проблемы. У меня есть кнопка с фоном изображения. Я попытался покрасить всю кнопку, но изображение не видно после окрашивания всей кнопки. Как я могу отредактировать этот «образ», как в этом примере? http://i.stack.imgur.com/XaQQQ.pngРедактирование фона кнопки в C#

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace bura 
{ 
    public partial class Form1 : Form 
    { 


     public Form1() 
     { 
      InitializeComponent(); 
     } 
     private void button2_Click(object sender, EventArgs e) 
     { 
      if (button2.BackgroundImage != null) 
      { 
       button2.BackgroundImage = null; 
       button2.BackColor = Color.Black; 
      } 

      else { 
       button2.BackgroundImageLayout = ImageLayout.Stretch; 
       button2.BackgroundImage = Image.FromFile("C:\\Users\\rati\\Desktop\\ks.png"); 
      } 

     } 

     private void button3_Click(object sender, EventArgs e) 
     { 
      button2.BackgroundImageLayout = ImageLayout.Stretch; 
      button2.BackgroundImage = Image.FromFile("C:\\Users\\rati\\Desktop\\ks.png"); 
     } 
    } 
} 

This

+0

Можете ли вы показать код? Если я установил кнопки 'Image' и' Background' 'Property', я вижу их оба. – roli09

+0

Я только что отредактировал этот пост. Теперь вы можете увидеть код :) –

+0

Я не уверен, что я точно понимаю вашу проблему, но если я начну свой пример, и я нажму кнопку 'button2', то просто' BackgroundImage' и «BackgroundImageLayout» устанавливается. Если я нажму второй раз на кнопке2, тогда значение «BackgroundImage» будет установлено равным null, и вы просто установите «BackColor». Если я нажму третий раз на кнопке2, я увижу «BackgroundImage» и «Color». – roli09

ответ

1

Вы можете редактировать фотографии с помощью метода, как это:

private static void DrawLinesOnBitmap(Bitmap bmp) 
{ 
    using (var p = new Pen(Color.Black, 5)) 
    { 
     using (var g = Graphics.FromImage(bmp)) 
     { 
     g.DrawLine(p, 0, 0, bmp.Width, bmp.Height); 
     } 
    } 
} 

Этот метод добавляет строку из левого верхнего угла в правый нижний угол. Просто нарисуйте еще несколько строк, и вы получите свой желаемый результат.

+0

спасибо, было полезно –

+0

и как сделать снимок/wan? –

+0

Что вы подразумеваете под "dim/wan"? – roli09

2

Просто сделал кнопку с помощью конструктора с помощью следующего кода:

this.button1.BackColor = System.Drawing.Color.DodgerBlue; 
this.button1.BackgroundImage = global::WindowsFormsApplication.Properties.Resources.ChargeImage; 
this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 
this.button1.Image = global::WindowsFormsApplication.Properties.Resources.DatabaseImage; 
this.button1.Location = new System.Drawing.Point(12, 12); 
this.button1.Name = "button1"; 
this.button1.Size = new System.Drawing.Size(264, 160); 
this.button1.TabIndex = 0; 
this.button1.UseVisualStyleBackColor = false; 

И это результат:

Screenshot of button with image

Так что это ваша проблема ?

+0

http: // i. stack.imgur.com/XaQQQ.png у вас есть изображение, представляющее король (игральные карты), и мне нужно сделать эти черные линии или похожие вещи на картинке. –

+0

Возможно, подписаться на OnPaint кнопки и использовать 'e. Graphics.DrawLine() '? – Oliver

+0

Я попробовал, но это не сработает. Если вам удастся это сделать, сообщите нам об этом, если вы можете –

Смежные вопросы