回答編集履歴
2
見直しキャンペーン中
answer
CHANGED
@@ -1,85 +1,85 @@
|
|
1
|
-
`Storyboard`には`Completed`イベントがあります。
|
2
|
-
[Storyboard クラス (System.Windows.Media.Animation) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.animation.storyboard#events)
|
3
|
-
|
4
|
-
```
|
5
|
-
private void Click_Greeting(object sender, RoutedEventArgs e)
|
6
|
-
{
|
7
|
-
ph.ChangePhrase();
|
8
|
-
|
9
|
-
Storyboard sb;
|
10
|
-
switch(ph.Now)
|
11
|
-
{
|
12
|
-
case Period.MORNING:
|
13
|
-
sb = FindResource("MorningAnimation") as Storyboard;
|
14
|
-
break;
|
15
|
-
case Period.EVENING:
|
16
|
-
sb = FindResource("EveningAnimation") as Storyboard;
|
17
|
-
break;
|
18
|
-
default:
|
19
|
-
sb = FindResource("NightAnimation") as Storyboard;
|
20
|
-
break;
|
21
|
-
}
|
22
|
-
|
23
|
-
sb.Completed += Completed;
|
24
|
-
BeginStoryboard(sb);
|
25
|
-
|
26
|
-
void Completed(object _, EventArgs __)
|
27
|
-
{
|
28
|
-
sb.Completed -= Completed;
|
29
|
-
ph.ChangePhraseAfterAnimation();
|
30
|
-
}
|
31
|
-
}
|
32
|
-
```
|
33
|
-
|
34
|
-
`Storyboard`に組み込めるようなものなら、入れてしまってもよさそうですが。
|
35
|
-
|
36
|
-
---
|
37
|
-
|
38
|
-
もちろんxamlでイベントつけてもいいですよ。
|
39
|
-
```
|
40
|
-
<Storyboard x:Key="MorningAnimation" Completed="Storyboard_Completed">
|
41
|
-
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
42
|
-
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FFFFA400" />
|
43
|
-
</ColorAnimationUsingKeyFrames>
|
44
|
-
</Storyboard>
|
45
|
-
<Storyboard x:Key="EveningAnimation" Completed="Storyboard_Completed">
|
46
|
-
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
47
|
-
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF0388FF" />
|
48
|
-
</ColorAnimationUsingKeyFrames>
|
49
|
-
</Storyboard>
|
50
|
-
<Storyboard x:Key="NightAnimation" Completed="Storyboard_Completed">
|
51
|
-
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
52
|
-
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF02067A" />
|
53
|
-
</ColorAnimationUsingKeyFrames>
|
54
|
-
</Storyboard>
|
55
|
-
```
|
56
|
-
|
57
|
-
```
|
58
|
-
private void Click_Greeting(object sender, RoutedEventArgs e)
|
59
|
-
{
|
60
|
-
ph.ChangePhrase();
|
61
|
-
|
62
|
-
switch(ph.Now)
|
63
|
-
{
|
64
|
-
case Period.MORNING:
|
65
|
-
var sb = FindResource("MorningAnimation") as Storyboard;
|
66
|
-
BeginStoryboard(sb);
|
67
|
-
break;
|
68
|
-
|
69
|
-
case Period.EVENING:
|
70
|
-
sb = FindResource("EveningAnimation") as Storyboard;
|
71
|
-
BeginStoryboard(sb);
|
72
|
-
break;
|
73
|
-
|
74
|
-
case Period.NIGHT:
|
75
|
-
sb = FindResource("NightAnimation") as Storyboard;
|
76
|
-
BeginStoryboard(sb);
|
77
|
-
break;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
|
81
|
-
private void Storyboard_Completed(object sender, EventArgs e)
|
82
|
-
{
|
83
|
-
ph.ChangePhraseAfterAnimation();
|
84
|
-
}
|
1
|
+
`Storyboard`には`Completed`イベントがあります。
|
2
|
+
[Storyboard クラス (System.Windows.Media.Animation) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.animation.storyboard#events)
|
3
|
+
|
4
|
+
```cs
|
5
|
+
private void Click_Greeting(object sender, RoutedEventArgs e)
|
6
|
+
{
|
7
|
+
ph.ChangePhrase();
|
8
|
+
|
9
|
+
Storyboard sb;
|
10
|
+
switch(ph.Now)
|
11
|
+
{
|
12
|
+
case Period.MORNING:
|
13
|
+
sb = FindResource("MorningAnimation") as Storyboard;
|
14
|
+
break;
|
15
|
+
case Period.EVENING:
|
16
|
+
sb = FindResource("EveningAnimation") as Storyboard;
|
17
|
+
break;
|
18
|
+
default:
|
19
|
+
sb = FindResource("NightAnimation") as Storyboard;
|
20
|
+
break;
|
21
|
+
}
|
22
|
+
|
23
|
+
sb.Completed += Completed;
|
24
|
+
BeginStoryboard(sb);
|
25
|
+
|
26
|
+
void Completed(object _, EventArgs __)
|
27
|
+
{
|
28
|
+
sb.Completed -= Completed;
|
29
|
+
ph.ChangePhraseAfterAnimation();
|
30
|
+
}
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
`Storyboard`に組み込めるようなものなら、入れてしまってもよさそうですが。
|
35
|
+
|
36
|
+
---
|
37
|
+
|
38
|
+
もちろんxamlでイベントつけてもいいですよ。
|
39
|
+
```xml
|
40
|
+
<Storyboard x:Key="MorningAnimation" Completed="Storyboard_Completed">
|
41
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
42
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FFFFA400" />
|
43
|
+
</ColorAnimationUsingKeyFrames>
|
44
|
+
</Storyboard>
|
45
|
+
<Storyboard x:Key="EveningAnimation" Completed="Storyboard_Completed">
|
46
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
47
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF0388FF" />
|
48
|
+
</ColorAnimationUsingKeyFrames>
|
49
|
+
</Storyboard>
|
50
|
+
<Storyboard x:Key="NightAnimation" Completed="Storyboard_Completed">
|
51
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
52
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF02067A" />
|
53
|
+
</ColorAnimationUsingKeyFrames>
|
54
|
+
</Storyboard>
|
55
|
+
```
|
56
|
+
|
57
|
+
```cs
|
58
|
+
private void Click_Greeting(object sender, RoutedEventArgs e)
|
59
|
+
{
|
60
|
+
ph.ChangePhrase();
|
61
|
+
|
62
|
+
switch(ph.Now)
|
63
|
+
{
|
64
|
+
case Period.MORNING:
|
65
|
+
var sb = FindResource("MorningAnimation") as Storyboard;
|
66
|
+
BeginStoryboard(sb);
|
67
|
+
break;
|
68
|
+
|
69
|
+
case Period.EVENING:
|
70
|
+
sb = FindResource("EveningAnimation") as Storyboard;
|
71
|
+
BeginStoryboard(sb);
|
72
|
+
break;
|
73
|
+
|
74
|
+
case Period.NIGHT:
|
75
|
+
sb = FindResource("NightAnimation") as Storyboard;
|
76
|
+
BeginStoryboard(sb);
|
77
|
+
break;
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
private void Storyboard_Completed(object sender, EventArgs e)
|
82
|
+
{
|
83
|
+
ph.ChangePhraseAfterAnimation();
|
84
|
+
}
|
85
85
|
```
|
1
追記
answer
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
`Storyboard`には`Completed`イベントがあります。
|
2
|
+
[Storyboard クラス (System.Windows.Media.Animation) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.animation.storyboard#events)
|
3
|
+
|
2
4
|
```C#
|
3
5
|
private void Click_Greeting(object sender, RoutedEventArgs e)
|
4
6
|
{
|
@@ -29,4 +31,55 @@
|
|
29
31
|
}
|
30
32
|
```
|
31
33
|
|
32
|
-
`Storyboard`に組み込めるようなものなら、入れてしまってもよさそうですが。
|
34
|
+
`Storyboard`に組み込めるようなものなら、入れてしまってもよさそうですが。
|
35
|
+
|
36
|
+
---
|
37
|
+
|
38
|
+
もちろんxamlでイベントつけてもいいですよ。
|
39
|
+
```xaml
|
40
|
+
<Storyboard x:Key="MorningAnimation" Completed="Storyboard_Completed">
|
41
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
42
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FFFFA400" />
|
43
|
+
</ColorAnimationUsingKeyFrames>
|
44
|
+
</Storyboard>
|
45
|
+
<Storyboard x:Key="EveningAnimation" Completed="Storyboard_Completed">
|
46
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
47
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF0388FF" />
|
48
|
+
</ColorAnimationUsingKeyFrames>
|
49
|
+
</Storyboard>
|
50
|
+
<Storyboard x:Key="NightAnimation" Completed="Storyboard_Completed">
|
51
|
+
<ColorAnimationUsingKeyFrames Storyboard.TargetName="window" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
52
|
+
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FF02067A" />
|
53
|
+
</ColorAnimationUsingKeyFrames>
|
54
|
+
</Storyboard>
|
55
|
+
```
|
56
|
+
|
57
|
+
```C#
|
58
|
+
private void Click_Greeting(object sender, RoutedEventArgs e)
|
59
|
+
{
|
60
|
+
ph.ChangePhrase();
|
61
|
+
|
62
|
+
switch(ph.Now)
|
63
|
+
{
|
64
|
+
case Period.MORNING:
|
65
|
+
var sb = FindResource("MorningAnimation") as Storyboard;
|
66
|
+
BeginStoryboard(sb);
|
67
|
+
break;
|
68
|
+
|
69
|
+
case Period.EVENING:
|
70
|
+
sb = FindResource("EveningAnimation") as Storyboard;
|
71
|
+
BeginStoryboard(sb);
|
72
|
+
break;
|
73
|
+
|
74
|
+
case Period.NIGHT:
|
75
|
+
sb = FindResource("NightAnimation") as Storyboard;
|
76
|
+
BeginStoryboard(sb);
|
77
|
+
break;
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
private void Storyboard_Completed(object sender, EventArgs e)
|
82
|
+
{
|
83
|
+
ph.ChangePhraseAfterAnimation();
|
84
|
+
}
|
85
|
+
```
|