Last active
November 20, 2018 02:16
-
-
Save nexpr/58e4a51a007605554875fad309c52235 to your computer and use it in GitHub Desktop.
analog clock
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Window x:Class="aclk.MainWindow" | |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |
xmlns:local="clr-namespace:aclk" | |
mc:Ignorable="d" | |
Title="MainWindow" Height="100" Width="100" | |
WindowStyle="None" Background="Transparent" AllowsTransparency="True" | |
MouseLeftButtonDown="Window_MouseLeftButtonDown" ShowInTaskbar="False" | |
ResizeMode="CanResizeWithGrip"> | |
<Window.ContextMenu> | |
<ContextMenu> | |
<MenuItem Header="SyncImmediate" Click="syncImmediate"/> | |
<MenuItem Header="Close" Click="close"/> | |
</ContextMenu> | |
</Window.ContextMenu> | |
<Border> | |
<Viewbox> | |
<Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
<Ellipse Stroke="#FCFCFE" Width="106" Height="106" StrokeThickness="1" Fill="#40888888" /> | |
<Ellipse Stroke="#FCFCFE" Width="100" Height="100" StrokeThickness="3" /> | |
<!--#region Splits--> | |
<Line X1="0" Y1="0" X2="0" Y2="6" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="0"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="6" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="90"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="6" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="180"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="6" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="270"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="30"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="60"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="120"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="150"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="210"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="240"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="300"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="4" Margin="1 6 0 0" Stroke="#FCFCFE" StrokeThickness="2" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="330"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="6"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="12"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="18"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="24"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="36"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="42"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="48"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="54"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="66"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="72"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="78"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="84"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="96"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="102"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="108"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="114"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="126"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="132"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="138"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="144"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="156"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="162"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="168"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="174"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="186"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="192"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="198"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="204"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="216"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="222"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="228"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="234"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="246"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="252"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="258"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="264"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="276"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="282"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="288"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="294"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="306"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="312"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="318"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="324"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="336"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="342"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="348"/> | |
</Line.RenderTransform> | |
</Line> | |
<Line X1="0" Y1="0" X2="0" Y2="2" Margin="0 6 0 0" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="47" Angle="354"/> | |
</Line.RenderTransform> | |
</Line> | |
<!--#endregion--> | |
<Line x:Name="hourhand" X1="0" X2="0" Y1="0" Y2="26" Stroke="#FCFCFE" StrokeThickness="5" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2 -26 0 0"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="26"/> | |
</Line.RenderTransform> | |
<Line.Resources> | |
<Storyboard x:Key="storyboard_h"> | |
<DoubleAnimation Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)" | |
From="0" To="360" Duration="12:0:0" RepeatBehavior="Forever" /> | |
</Storyboard> | |
</Line.Resources> | |
</Line> | |
<Line x:Name="minutehand" X1="0" X2="0" Y1="0" Y2="38" Stroke="#FCFCFE" StrokeThickness="3" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="1 -38 0 0"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="38"/> | |
</Line.RenderTransform> | |
<Line.Resources> | |
<Storyboard x:Key="storyboard_m"> | |
<DoubleAnimation Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)" | |
From="0" To="360" Duration="1:0:0" RepeatBehavior="Forever" /> | |
</Storyboard> | |
</Line.Resources> | |
</Line> | |
<Line x:Name="secondhand" X1="0" X2="0" Y1="0" Y2="48" Stroke="#FCFCFE" StrokeThickness="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 -33 0 0"> | |
<Line.RenderTransform> | |
<RotateTransform CenterY="40.5"/> | |
</Line.RenderTransform> | |
<Line.Resources> | |
<Storyboard x:Key="storyboard_s"> | |
<DoubleAnimation Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)" | |
From="0" To="360" Duration="0:1:0" RepeatBehavior="Forever" /> | |
</Storyboard> | |
</Line.Resources> | |
</Line> | |
<Ellipse x:Name="center_point" Fill="#FFFFEC73" Width="4" Height="4" Stroke="#FFEABA16" StrokeThickness="1"/> | |
</Grid> | |
</Viewbox> | |
</Border> | |
</Window> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Net.Http; | |
using System.Threading.Tasks; | |
using System.Windows; | |
using System.Windows.Input; | |
using System.Windows.Media; | |
using System.Windows.Media.Animation; | |
using System.Windows.Threading; | |
using System.Xml; | |
namespace aclk | |
{ | |
/// <summary> | |
/// MainWindow.xaml の相互作用ロジック | |
/// </summary> | |
public partial class MainWindow : Window | |
{ | |
public MainWindow() | |
{ | |
InitializeComponent(); | |
this.Loaded += MainWindow_Loaded; | |
} | |
private void MainWindow_Loaded(object sender, RoutedEventArgs eve) | |
{ | |
// Set time for ntp | |
var dtimer = new DispatcherTimer(); | |
dtimer.Tick += Dtimer_Tick; | |
dtimer.Interval = new TimeSpan(0, 10, 0); | |
dtimer.Start(); | |
// Call immediately at first | |
Dtimer_Tick(null, EventArgs.Empty); | |
// Create task tray icon | |
var notify_icon = new System.Windows.Forms.NotifyIcon(); | |
notify_icon.Click += (s, e) => | |
{ | |
this.Activate(); | |
}; | |
var uri = new Uri(@"pack://application:,,,/Resources/icon.ico"); | |
using (var stream = Application.GetResourceStream(uri).Stream) | |
{ | |
notify_icon.Icon = new System.Drawing.Icon(stream); | |
} | |
notify_icon.Visible = true; | |
} | |
private async void Dtimer_Tick(object sender, EventArgs e) | |
{ | |
try | |
{ | |
var now = await this.getNow(); | |
this.adjustTime(now); | |
var fill = (Color)ColorConverter.ConvertFromString("#FFFFEC73"); | |
this.center_point.Fill = new SolidColorBrush(fill); | |
var stroke = (Color)ColorConverter.ConvertFromString("#FFEABA16"); | |
this.center_point.Stroke = new SolidColorBrush(stroke); | |
} | |
catch (Exception ex) | |
{ | |
this.adjustTime(DateTime.Now); | |
var fill = (Color)ColorConverter.ConvertFromString("#FF35C8FF"); | |
this.center_point.Fill = new SolidColorBrush(fill); | |
var stroke = (Color)ColorConverter.ConvertFromString("#FF141CB4"); | |
this.center_point.Stroke = new SolidColorBrush(stroke); | |
} | |
} | |
private async Task<DateTime> getNow() | |
{ | |
using (var client = new HttpClient { Timeout = new TimeSpan(0, 0, 3) }) | |
using (var result = await client.GetAsync("https://ntp-a1.nict.go.jp/cgi-bin/jst")) | |
{ | |
if (!result.IsSuccessStatusCode) | |
{ | |
throw new Exception("Could not get current time. code: " + result.StatusCode); | |
} | |
var html = await result.Content.ReadAsStringAsync(); | |
var doc = new XmlDocument(); | |
doc.LoadXml(html); | |
var time_text = doc.GetElementsByTagName("BODY")[0].InnerText.Trim(); | |
var unix_time = double.Parse(time_text); | |
var unix_epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); | |
var now = unix_epoch.AddSeconds(unix_time).ToLocalTime(); | |
return now; | |
} | |
} | |
private void adjustTime(DateTime now) | |
{ | |
var storyboard_h = this.hourhand.Resources["storyboard_h"] as Storyboard; | |
var storyboard_m = this.minutehand.Resources["storyboard_m"] as Storyboard; | |
var storyboard_s = this.secondhand.Resources["storyboard_s"] as Storyboard; | |
storyboard_h.Begin(this.hourhand, true); | |
storyboard_h.SeekAlignedToLastTick(this.hourhand, now.TimeOfDay, TimeSeekOrigin.BeginTime); | |
storyboard_m.Begin(this.minutehand, true); | |
storyboard_m.SeekAlignedToLastTick(this.minutehand, now.TimeOfDay, TimeSeekOrigin.BeginTime); | |
storyboard_s.Begin(this.secondhand, true); | |
storyboard_s.SeekAlignedToLastTick(this.secondhand, now.TimeOfDay, TimeSeekOrigin.BeginTime); | |
} | |
private void close(object sender, RoutedEventArgs e) | |
{ | |
this.Close(); | |
} | |
private void syncImmediate(object sender, RoutedEventArgs e) | |
{ | |
Dtimer_Tick(null, EventArgs.Empty); | |
} | |
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | |
{ | |
if (e.ButtonState != MouseButtonState.Pressed) return; | |
this.DragMove(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment