Красно-зеленые световые индикаторы в C # .NET Form - PullRequest
18 голосов
/ 17 декабря 2009

Какой самый быстрый способ показать красный / зеленый индикатор в форме C #?

Изначально я думал об использовании переключателей, но не знал, как установить цвет точки, только текст переднего плана / фона.

Тогда я подумал о рисовании круга. Не смог найти форму набора инструментов для этого и не хотел писать код только для того, чтобы нарисовать круг.

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

Спасибо

Нил Уолтерс

Это то, что я до сих пор использовал квадратную кнопку вместо круга. Код это то, что я хочу, я просто хочу круглую форму.

        if (allGood)
        {
            btnIISIndicator.BackColor = Color.Green; 
        }
        else
        {
            btnIISIndicator.BackColor = Color.Red; 
        }

Ответы [ 8 ]

19 голосов
/ 13 июня 2014

Это просто, просто используйте System.Windows.Shapes для объекта и System.Windows.Media.Brushes для цветов.

Для круга вы можете сделать следующее:

System.Windows.Shapes.Ellipse circle = new System.Windows.Shapes.Ellipse();
circle.Height = 20; //or some size
circle.Width = 20; //height and width is the same for a circle
circle.Fill = System.Windows.Media.Brushes.Red;

Затем вы можете сделать функцию для проверки красного и зеленого.

Также вы можете использовать шестнадцатеричные значения для цветов:

circle.Fill = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#RRGGBB"));
17 голосов
/ 17 декабря 2009

Для такого рода вещей есть отличные значки и графика ... Вот ссылка здесь . Многое доступно бесплатно или за небольшую плату.

3 голосов
/ 17 декабря 2009

Я бы просто создал панель или PictureBox и установил фоновое изображение на красный / зеленый свет. Создайте изображения в PhotoShop / PaintShop / MS Paint или загрузите некоторые стоковые изображения из Интернета.

Всякий раз, когда изменяется статус, просто меняйте изображение.

2 голосов
/ 17 декабря 2009

Не совсем относится к рассматриваемому вопросу, но ваш код может быть несколько сокращен с использованием троичного оператора как такового:

btnIISIndicator.BackColor = allGood ? Color.Green : Color.Red;

Но это все зависит от определения читаемости и удобства обслуживания вашей (или вашей организации).

1 голос
/ 17 декабря 2009

Используйте изображение, но есть несколько отличных значков, доступных здесь , поэтому вам не нужно их делать.

1 голос
/ 17 декабря 2009

Создание красных и зеленых растровых изображений и использование элемента управления PictureBox для отображения растровых изображений.

1 голос
/ 17 декабря 2009

Я просто использую некоторые стандартные изображения и помещаю их в picturebox. отлично работает в наших приложениях.

0 голосов
/ 31 июля 2017

просто попробуйте это, это работает для меня.

SolidColorBrush solidColor=new SolidColorBrush();
  solidColor.Color=Colors.Red;
 ellips_circle.Fill=solidColor;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...