본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - Microsoft.Expression.Shapes.Arc ( Behind Code / Ring / 링 비하인드코드로 입력하기 )

728x90
반응형


 WPF & C# - Microsoft.Expression.Shapes.Arc ( Behind Code / Ring / 링 비하인드코드로 입력하기 )


testArc.zip




MainWindow.xaml



1
2
3
<StackPanel x:Name="stp" Margin="10">
    <TextBlock Text="TEST" FontSize="30" />
</StackPanel>
cs




MainWindow.xaml.cs


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;
using Microsoft.Expression.Shapes;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
void Init()
    Microsoft.Expression.Shapes.Arc arc = new Arc();
    arc.ArcThicknessUnit = Microsoft.Expression.Media.UnitType.Pixel;
    arc.ArcThickness = 10;
    arc.Fill = new SolidColorBrush(Colors.LimeGreen);
    arc.StrokeThickness = 5;
    arc.Stroke = new SolidColorBrush(Colors.LimeGreen);
    arc.StartAngle = 0;
    arc.EndAngle = 360;
    arc.Width = 120;
    arc.Height = 120;
    arc.Stretch = Stretch.None;   // 모양유지를 위한 필수
 
    Label lbl = new Label();
    lbl.Content = "192.168.111.111";
    lbl.HorizontalAlignment = HorizontalAlignment.Center;
    lbl.VerticalAlignment= VerticalAlignment.Center;
 
    Grid grd = new Grid();
    grd.Children.Add(arc);
    grd.Children.Add(lbl);
 
    DispatcherTimer MyTimer = new DispatcherTimer();
    MyTimer.Interval = TimeSpan.FromMilliseconds(1);
    MyTimer.Tick += (s, e) =>
    {
        arc.StartAngle = arc.StartAngle + 4;
        arc.EndAngle = arc.EndAngle + 1;
    };
    MyTimer.Start(); //타이머 시작
 
 
    Microsoft.Expression.Shapes.Arc arc2 = new Arc();
    arc2.ArcThicknessUnit = Microsoft.Expression.Media.UnitType.Percent;
    arc2.ArcThickness = 10;
    arc2.Fill = new SolidColorBrush(Colors.LimeGreen);
    arc2.StrokeThickness = 5;
    arc2.Stroke = new SolidColorBrush(Colors.Red);
    arc2.StartAngle = 50;
    arc2.EndAngle = 300;
    arc2.Width = 120;
    arc2.Height = 120;
    arc2.Stretch = Stretch.None;   // 모양유지를 위한 필수
 
 
    Label lbl2 = new Label();
    lbl2.Content = "192.168.111.111";
    lbl2.HorizontalAlignment = HorizontalAlignment.Center;
    lbl2.VerticalAlignment = VerticalAlignment.Center;
 
    Grid grd2 = new Grid();
    grd2.Children.Add(arc2);
    grd2.Children.Add(lbl2);
 
 
 
    WrapPanel wrp = new WrapPanel();
    wrp.Children.Add(grd);
    wrp.Children.Add(grd2);
 
    stp.Children.Add(wrp);
 
 
    DispatcherTimer MyTimer2 = new DispatcherTimer();
    MyTimer2.Interval = TimeSpan.FromTicks(10000);
    MyTimer2.Tick += (s, e) =>
    {
        arc2.StartAngle = arc2.StartAngle + 1;
    };
    MyTimer2.Start(); //타이머 시작
}
cs





728x90
반응형