57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Media;
|
|
|
|
namespace MECF.Framework.UI.Client.CenterViews.Controls
|
|
{
|
|
public partial class LED : UserControl
|
|
{
|
|
// Using a DependencyProperty as the backing store for On. This enables animation, styling, binding, etc...
|
|
public static readonly DependencyProperty OnProperty =
|
|
DependencyProperty.Register("On", typeof(bool), typeof(LED), new PropertyMetadata(false));
|
|
|
|
// Using a DependencyProperty as the backing store for IsRed. This enables animation, styling, binding, etc...
|
|
public static readonly DependencyProperty IsRedProperty =
|
|
DependencyProperty.Register("IsRed", typeof(bool), typeof(LED), new PropertyMetadata(false));
|
|
|
|
public LED()
|
|
{
|
|
InitializeComponent();
|
|
root.DataContext = this;
|
|
}
|
|
|
|
public bool On
|
|
{
|
|
get => (bool) GetValue(OnProperty);
|
|
set => SetValue(OnProperty, value);
|
|
}
|
|
|
|
public bool IsRed
|
|
{
|
|
get => (bool) GetValue(IsRedProperty);
|
|
set => SetValue(IsRedProperty, value);
|
|
}
|
|
}
|
|
|
|
public class LedConverter : IMultiValueConverter
|
|
{
|
|
static Brush GreenBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF07FF07"));
|
|
static Brush GrayBrush = new SolidColorBrush(Colors.LightGray);
|
|
static Brush RedBrush = new SolidColorBrush(Colors.Red);
|
|
|
|
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
var value = (bool)values[0];
|
|
var red = (bool)values[1];
|
|
return value ? red ? RedBrush : GreenBrush : GrayBrush;
|
|
}
|
|
|
|
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
} |