using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Aitex.Core.UI.Control
{
///
/// Interaction logic for Arrow.xaml111
///
public partial class Arrow : UserControl
{
public Arrow()
{
InitializeComponent();
}
public static readonly DependencyProperty GasOnOffProperty = DependencyProperty.Register(
"GasOnOff", typeof(bool), typeof(Arrow),
new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender));
public static readonly DependencyProperty GasColorProperty = DependencyProperty.Register(
"GasColor", typeof(Brush), typeof(Arrow),
new FrameworkPropertyMetadata(Brushes.Black, FrameworkPropertyMetadataOptions.AffectsRender));
public static readonly DependencyProperty DisplayAngleProperty = DependencyProperty.Register(
"DisplayAngle", typeof(int), typeof(Arrow),
new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// display angle
///
public int DisplayAngle
{
get
{
return (int)GetValue(DisplayAngleProperty);
}
set
{
SetValue(DisplayAngleProperty, value);
}
}
///
/// pipe gas on/off state
///
public bool GasOnOff
{
get
{
return (bool)this.GetValue(GasOnOffProperty);
}
set
{
this.SetValue(GasOnOffProperty, value);
}
}
///
/// pipe gas on color
///
public Brush GasColor
{
get
{
return (Brush)this.GetValue(GasColorProperty);
}
set
{
this.SetValue(GasColorProperty, value);
}
}
///
/// override rendering method
///
///
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
this.Opacity = GasOnOff ? 1 : 0.5;
this.arrow1.Fill = GasColor;
this.rotateTransform.Angle = DisplayAngle;
}
}
}