Member
Статус: Не в сети Регистрация: 24.02.2004 Откуда: Minsk
НА форму нужно всунуть три GroupBox (или аналогичное) (для ввода трёх координат цвета RGB) + одно окно PictureBox (или Panel, или ещё какое) для выбранного цвета из нашей палитры.
В итоге должно получится такое: У нас появляется политра, мы выбирает в ней цвет, нажимаем ОК, а на форме появляется три GroupBox с координатами выбранного цвета и PictureBox с изображением выбранного цвета.
Member
Статус: Не в сети Регистрация: 24.02.2004 Откуда: Minsk
Новая проблема:
Теперь на форме нужно нарисовать палитру градации черного, длинна политры равна 256 пикселей, причем первый пиксел черный, а последующие светлее (последний пиксел белай) + чтобы при наведении на любой пиксел выдавало в текстовом окне на форме его координаты (Х,У) (координаты Х будут меняться от 0 до 256, а У, допустим, от 0 до 40), например, [200],[28].
Теперь на форме нужно нарисовать палитру градации черного, длинна политры равна 256 пикселей, причем первый пиксел черный, а последующие светлее (последний пиксел белай)
Смотри LinearGradientBrush из Drawing2D.
Dima Kharitonov писал(а):
чтобы при наведении на любой пиксел выдавало в текстовом окне на форме его координаты (Х,У)
Чего-то я с синтаксисом в LinearGradientBrush из Drawing2D не разберусь.
Странно – всего 8 перезагрузок. Думаю, что для тебя вполне подойдет:
Код:
LinearGradientBrush lgb = new LinearGradientBrush(r, Color.Black, Color.White, LinearGradientMode.Vertical);
Где r соответственно Rectangle: Нарисовать, надеюсь, сможешь и сам?
Dima Kharitonov писал(а):
Да и с MouseMove у меня не всё идеально.
А это типа как? Не телепат, блин - не сложилось… Короче вот:
Код:
using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Text; using System.Windows.Forms;
namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Point rTopLeft = new Point(10, 10); private Size rSize = new Size(100, 100);
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics dc = e.Graphics; Rectangle r = new Rectangle(rTopLeft.X, rTopLeft.Y, rSize.Width, rSize.Height); LinearGradientBrush lgb = new LinearGradientBrush(r, Color.Black, Color.White, LinearGradientMode.Vertical); dc.FillRectangle(lgb, rTopLeft.X, rTopLeft.Y, rSize.Width, rSize.Height); }
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения