Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal GeometryGroup CurrentGeometry
- {
- get { return (GeometryGroup)GetValue(CurrentGeometryProperty); }
- set { SetValue(CurrentGeometryProperty, value); }
- }
- internal static readonly DependencyProperty CurrentGeometryProperty =
- DependencyProperty.Register(
- "CurrentGeometry",
- typeof(GeometryGroup),
- typeof(ShapeEditorControl),
- new FrameworkPropertyMetadata(default(GeometryGroup), CurrentGeometryChanged));
- public void RemoveDependency()
- {
- DependencyProperty prop = CurrentGeometryProperty;
- var registeredPropertyField = typeof(DependencyProperty).
- GetField("RegisteredPropertyList", BindingFlags.NonPublic | BindingFlags.Static);
- object list = registeredPropertyField.GetValue(null);
- var genericMeth = list.GetType().GetMethod("Remove");
- try
- {
- genericMeth.Invoke(list, new[] { prop });
- }
- catch (TargetInvocationException)
- {
- Console.WriteLine("Does not exist in list");
- }
- var propertyFromNameField = typeof(DependencyProperty).
- GetField("PropertyFromName", BindingFlags.NonPublic | BindingFlags.Static);
- var propertyFromName = (Hashtable)propertyFromNameField.GetValue(null);
- object keyToRemove = null;
- foreach (DictionaryEntry item in propertyFromName)
- {
- if (item.Value == prop)
- keyToRemove = item.Key;
- }
- if (keyToRemove != null)
- propertyFromName.Remove(keyToRemove);
- }
Add Comment
Please, Sign In to add comment