Реализация вспомогательных процедур

Оценить
(0 голоса)

Когда указатель мыши двигается по полю изображения, вам нужно перехватывать компо­ненты цвета точек, находящихся непосредственно под курсором (GetPointColor), обнов­лять метки и второе поле изображения (чтобы они отражали этот цвет— DisplayColor), а затем генерировать код для реализации соответствующей цветовой структуры (setCode). Далее даны реализации этих процедур:

III <suinmary>

HI Возвращает структуру Color, представляющую цвет пиксела /// в указанных координатах х и у.

/// </summary>

III <param name="x"></parain>

III <param name=My"></param>

III <returns>Структура Color</returns> private Color GetPointColor(int x, int y)

{

Il   Получить растровое изображение из поля изображения палитры Bitmap bmp = (Bitmap)pictureBoxPalette.Image;

// Использовать GetPixel для получения цветовой структуры // для текущей позиции указателя мыши Color color = bmp.GetPixel(х, у);

II   Вернуть цветовую структуру  %

return color;

}

/// <summary>

III Показывает значения RGB values для данного цвета.

Ill Также настраивает цвет фона второго поля изображения.

Ill </summary>

III <param пате="со1ог">Цвет для отображения</рагат> private void DisplayColor(Color color)

{

// Взять значения RGB из цветовой структуры

string R = color.R.ToString(); string G = color.G.ToString(); string В = color.B.ToString();

// Настроить показ текущего цвета во втором поле изображения this.pictureBoxColor.BackColor = color;

// Показать значения RGB в метках this.labelRValue.Text = R; this.labelGValue.Text = G;

i

this.labelBValue.Text = B;

}

III <summary>

III Генерирует строку, представляющую код на языке C# или VB, необходимую III для создания экземпляра структуры Color, который соответствует III переданной внутрь структуре Color. Эта строка затем присваивается III полю _code данного пользовательского элемента управления.

Ill </summary>

III <param пате="со1огм>Цвет для представления в виде кода.</param>

III <param name="isVBM>ByneB флаг, указывающий используемый язык:

III false обозначет С#, true обозначает VB</param> private void SetCode(Color color, bool isVB)

{

// Прочитать настройки надстройки из реестра SetPropFromReg();

string code = ""; if (isVB)

{

code = "Dim color As Color = ";

}

•    else {

code = "Color color = ";

}

code = code + "Color.FromArgb(" + color.R.ToString() + ", " + color.G.ToString() + ", " + color.B.ToString() + ");";

_code = code;

this.labelCode.Text = code;

III <summary>

III Читает элемент реестра и настраиваем соответствующим образом III выходные поля языка.

Ill </summary>

private void SetPropFromReg()

{

RegistryKey regKey =

Registry.CurrentUser.OpenSubKey(@"Software\Contoso\Addins\ColorPalette"); string codeVal = (string)regKey.GetValue("Language", "CSharp");

if (codeVal == "CSharp")

{

_generateVB = false;

}

else

{

_generateVB = true;

}

Сообщение о выборе цвета
Завершение разработки класса Connect
Отображение окна инструмента и пользовательского элемента управления
Вставка сгенерированного кода
Предоставление настроек надстройки

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.