質問編集履歴

2

ソースコード修正

2018/07/20 04:40

投稿

pebble8888
pebble8888

スコア390

test CHANGED
File without changes
test CHANGED
@@ -78,6 +78,12 @@
78
78
 
79
79
  {
80
80
 
81
+        // これを追加するとチェックイベントが発生しない?
82
+
83
+ Type type = typeof(HogeToggleButton);
84
+
85
+ DefaultStyleKeyProperty.OverrideMetadata(type, new FrameworkPropertyMetadata(type));
86
+
81
87
  }
82
88
 
83
89
  }

1

単純化したコードを追加

2018/07/20 04:40

投稿

pebble8888
pebble8888

スコア390

test CHANGED
File without changes
test CHANGED
@@ -11,3 +11,85 @@
11
11
  継承した場合でも、うまく取れるようにする方法はあるでしょうか?
12
12
 
13
13
  あるいは、何か勘違いしているんでしょうか?
14
+
15
+
16
+
17
+ 複雑なので、単純化すると以下のようになります。
18
+
19
+ 今、試しに、新規プロジェクトでMainWindow.xamlで使ったら、問題なく動きますね。
20
+
21
+ ということは、他の部分に原因があるんでしょうね。
22
+
23
+
24
+
25
+ HogeToggleButton を置いているのは、UserControl内なのですが、
26
+
27
+ そのあたりが原因かも知れません。
28
+
29
+
30
+
31
+ ```
32
+
33
+ <local:HogeToggleButton x:Name="Fuga"
34
+
35
+ Checked="Fuga_Checked"
36
+
37
+ Unchecked="Fuga_Unchecked"
38
+
39
+ >
40
+
41
+ </local:HogeToggleButton>
42
+
43
+ ```
44
+
45
+
46
+
47
+ ```
48
+
49
+ private void Fuga_Checked(object sender, RoutedEventArgs e)
50
+
51
+ {
52
+
53
+ Debug.Print("Fuga_Checked {0}", Fuga.IsChecked);
54
+
55
+ }
56
+
57
+
58
+
59
+ private void Fuga_Unchecked(object sender, RoutedEventArgs e)
60
+
61
+ {
62
+
63
+ Debug.Print("Fuga_Unchecked {0}", Fuga.IsChecked);
64
+
65
+ }
66
+
67
+ ```
68
+
69
+
70
+
71
+ ```
72
+
73
+ class HogeToggleButton : ToggleButton
74
+
75
+ {
76
+
77
+ static HogeToggleButton()
78
+
79
+ {
80
+
81
+ }
82
+
83
+ }
84
+
85
+ ```
86
+
87
+ Fuga_Checked True
88
+
89
+ Fuga_Unchecked False
90
+
91
+ Fuga_Checked True
92
+
93
+ Fuga_Unchecked False
94
+
95
+ Fuga_Checked True