Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
Эксперт .NET
4337 / 1999 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
1

Настройка цветов. Что-то вроде ColorPicker'a.

26.11.2010, 20:48. Просмотров 5132. Ответов 5
Метки нет (Все метки)


Здравстуйте. Хочу сделать подобную "вещь" как на картинке. Только не совсем понятно как заполнять квадратную область цветами определёнными. Может кто нибудь показать пример, что-ли. Или объяснить как это делается. Мне нужно для программы, чтобы можно было выбирать цвет. Я находил на codeproject.com ColorDialog, но он не подходит, у него много недостатков.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2010, 20:48
Ответы с готовыми решениями:

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов....

Настройка цветов windows
Здравствуйте! Как можно изменить цвет ( Настройки параметров компьютера ) ?

PWS не может зарегистрить что-то вроде 'msdasql.dll' или что-то похожее.
Ну вот. Сяду, думаю, вечерком и форум себе сделаю. А не тут-то было. Что-то случилось вроде с моим...

Что то вроде paint на C#
Вот решил сделать, что то похожее на ms paint. Вот что у меня получилось. using System;...

5
burning1ife
1445 / 1267 / 293
Регистрация: 21.09.2008
Сообщений: 3,439
Записей в блоге: 9
26.11.2010, 22:04 2
почему не хочешь стандартный ColorDialog использовать?
Вот я набросал конвертер, чтобы его можно было использовать в WPF
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  private void button1_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog();
            colorDialog.ShowDialog();
            System.Drawing.Color color1 = colorDialog.Color;            
            Color color = Colors.Red;
            color.A = color1.A;
            color.R = color1.R;
            color.G = color1.G;
            color.B = color1.B;
            Brush brush = new SolidColorBrush(color);
            button1.Background = brush;
        }
2
Эксперт .NET
4337 / 1999 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
26.11.2010, 22:18  [ТС] 3
Ну для скорости можно и стандартный. Спасибо за пример. В принципе воспользуюсь. Но всё же, вопрос открыт. По поводу заливки области цветами, для последующего выбора цвета из этой области с возможностью редактирования на ходу. Как на скриншоте.
0
burning1ife
1445 / 1267 / 293
Регистрация: 21.09.2008
Сообщений: 3,439
Записей в блоге: 9
26.11.2010, 23:19 4
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<StackPanel Orientation="Horizontal">
        <Border MouseMove="Palette_MouseMove" Name="Palette" Height="300" Width="300" HorizontalAlignment="Left">
            <Border.Background>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <GradientStop Color="Yellow" Offset="0.0" />
                    <GradientStop Color="Red" Offset="0.25" />
                    <GradientStop Color="Blue" Offset="0.75" />
                    <GradientStop Color="LimeGreen" Offset="1.0" />
                </LinearGradientBrush>
            </Border.Background>           
        </Border>
        <Border Name="BorderColor" Width="30" Height="30"></Border>
    </StackPanel>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 private struct POINTAPI
        {
            public uint X;
            public uint Y;
        }
 
        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern int GetPixel(int hdc, int nXPos, int nYPos);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int GetWindowDC(int hwnd);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int GetCursorPos(out POINTAPI lpPoint);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int ReleaseDC(int hWnd, int hDC);
 
        private static SolidColorBrush GetPixelColor(Point point)
        {
            int lDC = GetWindowDC(0);
            int intColor = GetPixel(lDC, (int)point.X, (int)point.Y);
            //
            // Release the DC after getting the Color.
            ReleaseDC(0, lDC);
 
            //byte a = (byte)( ( intColor >> 0x18 ) & 0xffL );
            byte b = (byte)((intColor >> 0x10) & 0xffL);
            byte g = (byte)((intColor >> 8) & 0xffL);
            byte r = (byte)(intColor & 0xffL);
            Color color = Color.FromRgb(r, g, b);
            return new SolidColorBrush(color);
        }
 
        private void Palette_MouseMove(object sender, MouseEventArgs e)
        {
            BorderColor.Background = GetPixelColor(e.GetPosition(Palette));
        }
BorderColor закрашивается в цвет, который находится под курсором в палитре
1
15 / 15 / 3
Регистрация: 04.10.2010
Сообщений: 573
29.03.2011, 09:34 5
Цитата Сообщение от kenny69 Посмотреть сообщение
C#
1
private void button1_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog(); colorDialog.ShowDialog(); System.Drawing.Color color1 = colorDialog.Color; Color color = Colors.Red; color.A = color1.A; color.R = color1.R; color.G = color1.G; color.B = color1.B; Brush brush = new SolidColorBrush(color); button1.Background = brush; }
а для изменения цвета текста как будет а то он мне фон заливает а не цвет текста меняет
0
15 / 15 / 3
Регистрация: 04.10.2010
Сообщений: 573
30.03.2011, 11:27 6
все сделал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2011, 11:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Что-то вроде тестника
Вообщем нужно сделать что-то вроде тестов. Тоесть задается рандомный вопрос из библиотеки вопросов,...

Что то вроде чекбокса
В общем на странице несколько картинок и надо выбрать только одну, только не чекбоксом, а другой...

Что-то вроде усилителя... :)
В общем, задачка такая: Есть сигнал с выхода звуковой карты компа / телефона или mp3 плеера....

Что-то вроде анимации
Здравствуйте, форумчане. Делаю небольшой проектик, неважно о чем он будет. Возник такой вопрос:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.