Световые индикаторы Red-Green в формате С#.NET

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

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

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

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

Спасибо,

Нил Уолтерс

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

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

Ответ 1

Есть несколько отличных значков и графики для такого рода вещей... Здесь ссылка здесь. Еще много бесплатных или за небольшую плату.

Ответ 2

Это просто, просто используйте 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"));

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

SolidColorBrush solidColor=new SolidColorBrush();
  solidColor.Color=Colors.Red;
 ellips_circle.Fill=solidColor;