Ответ 1
Есть несколько отличных значков и графики для такого рода вещей... Здесь ссылка здесь. Еще много бесплатных или за небольшую плату.
Какой самый быстрый способ показать индикатор красного/зеленого света в форме С#?
Я изначально думал об использовании переключателей, но не уверен, как установить цвет точки, только текст переднего плана/фона.
Тогда я подумал о рисовании круга. Не удалось найти форму инструментария для этого и не хотелось писать код, чтобы рисовать круг.
В принципе, я пишу небольшой монитор конкретных приложений, который показывает красный свет, если некоторые службы недоступны, или некоторые веб-службы не отвечают.
Спасибо,
Нил Уолтерс
Это то, что я до сих пор использовал квадратную кнопку вместо круга. Код - это то, что я хочу, я просто хочу круглую форму.
if (allGood)
{
btnIISIndicator.BackColor = Color.Green;
}
else
{
btnIISIndicator.BackColor = Color.Red;
}
Есть несколько отличных значков и графики для такого рода вещей... Здесь ссылка здесь. Еще много бесплатных или за небольшую плату.
Это просто, просто используйте 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"));
Я бы просто сделал панель или PictureBox
и установил фоновое изображение на изображение красного/зеленого. Либо сделайте изображения в PhotoShop/PaintShop/MS Paint, либо загрузите некоторые изображения с сайта.
Всякий раз, когда изменяется статус, просто меняйте изображение.
Не совсем связано с вопросом, но ваш код может быть несколько сокращен, используя тернарный оператор как таковой:
btnIISIndicator.BackColor = allGood ? Color.Green : Color.Red;
Но все зависит от определения читаемости и удобства обслуживания (или вашей организации).
Я просто использую некоторые стандартные изображения и помещаю их в picturebox
. отлично работает в наших приложениях.
Создайте растровые изображения с красным и зеленым цветом и используйте элемент управления PictureBox
для отображения растровых изображений.
Используйте изображение, но есть некоторые отличные иконки здесь, поэтому вам не нужно на самом деле их создавать.
просто попробуй, это работает для меня.
SolidColorBrush solidColor=new SolidColorBrush();
solidColor.Color=Colors.Red;
ellips_circle.Fill=solidColor;