protected override Script.IScriptCommand executeInner(ParameterDic pm, ItemsControl ic, RoutedEventArgs evnt, IUIInput input, IList <IUIInputProcessor> inpProcs) { if (AdornerMode == UIEventHub.AdornerMode.Update) { var updateAdorner = pm.GetValue <ResizeItemAdorner>(ResizeItemAdornerKey); string mode = pm.GetValue <string>(ResizeModeKey); Point startPosition = pm.GetValue <Point>(StartPositionKey); Point currentPosition = pm.GetValue <Point>(CurrentPosittionKey); Vector offset = currentPosition - startPosition; // private static IScriptCommand previewNorthCommand = // ScriptCommands.Multiply<double>("{DiffY}", -1, "{DiffY1}", // ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetY}", "{DiffY1}", false, // ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetTop}", "{DiffY1}"))); //private static IScriptCommand previewSouthCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetY}", "{DiffY}"); //private static IScriptCommand previewWestCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetX}", "{DiffX}", false, // ScriptCommands.Multiply<double>("{DiffX}", 1, "{DiffX1}", // ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetLeft}", "{DiffX1}"))); //private static IScriptCommand previewEastCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetX}", "{DiffX}"); if (mode.Contains("N")) { updateAdorner.OffsetTop = offset.Y; updateAdorner.OffsetHeight = -1 * offset.Y; } if (mode.Contains("E")) { updateAdorner.OffsetWidth = offset.X; } if (mode.Contains("S")) { updateAdorner.OffsetHeight = offset.Y; } if (mode.Contains("W")) { updateAdorner.OffsetLeft = offset.X; updateAdorner.OffsetWidth = -1 * offset.X; } //adornerLayer = UITools.FindVisualChild<AdornerLayer>(selectedItem); //ResizeItemAdorner updateAdorner = new ResizeItemAdorner(adornerLayer); //adornerLayer.Add(updateAdorner); ////if (updateAdorner == null) //// return ResultCommand.Error(new Exception("Adorner not found.")); //updateAdorner.SelectedItem = targetItem; } else { var scp = ControlUtils.GetScrollContentPresenter(ic); if (scp != null) { AdornerLayer adornerLayer = pm.GetValue <AdornerLayer>(AdornerLayerKey); if (adornerLayer != null) { switch (AdornerMode) { case UIEventHub.AdornerMode.Attach: IResizable targetItem = TargetItemKey == null ? (ic.ItemsSource as IEnumerable).OfType <ISelectable>() .FirstOrDefault(s => s is IResizable && s.IsSelected) as IResizable : pm.GetValue <IResizable>(TargetItemKey); UIElement selectedItem = ic.ItemContainerGenerator.ContainerFromItem(targetItem) as UIElement; ResizeItemAdorner resizeAdorner = new ResizeItemAdorner(adornerLayer) { SelectedItem = targetItem }; pm.SetValue(ResizeItemAdornerKey, resizeAdorner, false); adornerLayer.Add(resizeAdorner); break; case UIEventHub.AdornerMode.Detach: ResizeItemAdorner detachAdorner = pm.GetValue <ResizeItemAdorner>(ResizeItemAdornerKey); if (detachAdorner != null) { adornerLayer.Remove(detachAdorner); } pm.SetValue <object>(ResizeItemAdornerKey, null); break; } } } } return(NextCommand); }
public static void SetResizeItemAdorner(DependencyObject target, ResizeItemAdorner value) { target.SetValue(ResizeItemAdornerProperty, value); }