blob: 5b88c0d55b22c12190c44daeeef8efa74396daf1 (
plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Media;
namespace Gestor.Common.Helpers;
public class FindVisualChildren
{
[CompilerGenerated]
private sealed class _003CFind_003Ed__0<T> : IEnumerable<T>, IEnumerable, IEnumerator<T>, IDisposable, IEnumerator where T : DependencyObject
{
private int _003C_003E1__state;
private T _003C_003E2__current;
private int _003C_003El__initialThreadId;
private DependencyObject depObj;
public DependencyObject _003C_003E3__depObj;
private int _003Ci_003E5__2;
private DependencyObject _003Cchild_003E5__3;
private IEnumerator<T> _003C_003E7__wrap3;
T IEnumerator<T>.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
[DebuggerHidden]
public _003CFind_003Ed__0(int _003C_003E1__state)
{
this._003C_003E1__state = _003C_003E1__state;
_003C_003El__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = _003C_003E1__state;
if (num == -3 || num == 2)
{
try
{
}
finally
{
_003C_003Em__Finally1();
}
}
_003Cchild_003E5__3 = null;
_003C_003E7__wrap3 = null;
_003C_003E1__state = -2;
}
private bool MoveNext()
{
try
{
switch (_003C_003E1__state)
{
default:
return false;
case 0:
_003C_003E1__state = -1;
if (depObj == null)
{
break;
}
_003Ci_003E5__2 = 0;
goto IL_0107;
case 1:
_003C_003E1__state = -1;
goto IL_0090;
case 2:
{
_003C_003E1__state = -3;
goto IL_00d6;
}
IL_0107:
if (_003Ci_003E5__2 >= VisualTreeHelper.GetChildrenCount(depObj))
{
break;
}
_003Cchild_003E5__3 = VisualTreeHelper.GetChild(depObj, _003Ci_003E5__2);
if (_003Cchild_003E5__3 != null && _003Cchild_003E5__3 is T)
{
_003C_003E2__current = (T)(object)_003Cchild_003E5__3;
_003C_003E1__state = 1;
return true;
}
goto IL_0090;
IL_0090:
_003C_003E7__wrap3 = Find<T>(_003Cchild_003E5__3).GetEnumerator();
_003C_003E1__state = -3;
goto IL_00d6;
IL_00d6:
if (_003C_003E7__wrap3.MoveNext())
{
T current = _003C_003E7__wrap3.Current;
_003C_003E2__current = current;
_003C_003E1__state = 2;
return true;
}
_003C_003Em__Finally1();
_003C_003E7__wrap3 = null;
_003Cchild_003E5__3 = null;
_003Ci_003E5__2++;
goto IL_0107;
}
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void _003C_003Em__Finally1()
{
_003C_003E1__state = -1;
if (_003C_003E7__wrap3 != null)
{
_003C_003E7__wrap3.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
_003CFind_003Ed__0<T> _003CFind_003Ed__;
if (_003C_003E1__state == -2 && _003C_003El__initialThreadId == Environment.CurrentManagedThreadId)
{
_003C_003E1__state = 0;
_003CFind_003Ed__ = this;
}
else
{
_003CFind_003Ed__ = new _003CFind_003Ed__0<T>(0);
}
_003CFind_003Ed__.depObj = _003C_003E3__depObj;
return _003CFind_003Ed__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<T>)this).GetEnumerator();
}
}
[IteratorStateMachine(typeof(_003CFind_003Ed__0<>))]
public static IEnumerable<T> Find<T>(DependencyObject depObj) where T : DependencyObject
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new _003CFind_003Ed__0<T>(-2)
{
_003C_003E3__depObj = depObj
};
}
}
|