60 lines
2.2 KiB
C#
60 lines
2.2 KiB
C#
using System.Windows;
|
|
using System.Windows.Media;
|
|
using HandyControl.Expression.Media;
|
|
|
|
namespace HandyControl.Expression.Shapes
|
|
{
|
|
public sealed class Arc : PrimitiveShape, IArcGeometrySourceParameters
|
|
{
|
|
public static readonly DependencyProperty ArcThicknessProperty =
|
|
DependencyProperty.Register("ArcThickness", typeof(double), typeof(Arc),
|
|
new DrawingPropertyMetadata(0.0, DrawingPropertyMetadataOptions.AffectsRender));
|
|
|
|
public static readonly DependencyProperty ArcThicknessUnitProperty =
|
|
DependencyProperty.Register("ArcThicknessUnit", typeof(UnitType), typeof(Arc),
|
|
new DrawingPropertyMetadata(UnitType.Pixel, DrawingPropertyMetadataOptions.AffectsRender));
|
|
|
|
public static readonly DependencyProperty EndAngleProperty = DependencyProperty.Register("EndAngle",
|
|
typeof(double), typeof(Arc),
|
|
new DrawingPropertyMetadata(90.0, DrawingPropertyMetadataOptions.AffectsRender));
|
|
|
|
public static readonly DependencyProperty StartAngleProperty =
|
|
DependencyProperty.Register("StartAngle", typeof(double), typeof(Arc),
|
|
new DrawingPropertyMetadata(0.0, DrawingPropertyMetadataOptions.AffectsRender));
|
|
|
|
public double ArcThickness
|
|
{
|
|
get => (double) GetValue(ArcThicknessProperty);
|
|
set => SetValue(ArcThicknessProperty, value);
|
|
}
|
|
|
|
public UnitType ArcThicknessUnit
|
|
{
|
|
get => (UnitType) GetValue(ArcThicknessUnitProperty);
|
|
set => SetValue(ArcThicknessUnitProperty, value);
|
|
}
|
|
|
|
public double EndAngle
|
|
{
|
|
get => (double) GetValue(EndAngleProperty);
|
|
set => SetValue(EndAngleProperty, value);
|
|
}
|
|
|
|
Stretch IGeometrySourceParameters.Stretch => Stretch;
|
|
|
|
Brush IGeometrySourceParameters.Stroke => Stroke;
|
|
|
|
double IGeometrySourceParameters.StrokeThickness => StrokeThickness;
|
|
|
|
public double StartAngle
|
|
{
|
|
get => (double) GetValue(StartAngleProperty);
|
|
set => SetValue(StartAngleProperty, value);
|
|
}
|
|
|
|
protected override IGeometrySource CreateGeometrySource()
|
|
{
|
|
return new ArcGeometrySource();
|
|
}
|
|
}
|
|
} |