示例#1
0
		public void SetMousePosition()
		{
			var middleClick = new MouseButtonTrigger();
			middleClick.AddTag("temporary");
			var setLastPositionCommand = new Command(position => SetPosition(position)).Add(middleClick);
			setLastPositionCommand.AddTag("temporary");
			var moveMouse = new MousePositionTrigger(MouseButton.Left, State.Released);
			moveMouse.AddTag("temporary");
			var checkTransformationCommand =
				new Command(position => CheckIfCanTransformControl(position)).Add(moveMouse);
			checkTransformationCommand.AddTag("temporary");
			var pressAndMoveMouse = new MousePositionTrigger(MouseButton.Left, State.Pressed);
			pressAndMoveMouse.AddTag("temporary");
			var pressOnControlCommand =
				new Command(position => TransformSelectedControl(position)).Add(pressAndMoveMouse);
			pressOnControlCommand.AddTag("temporary");
			var pressControl = new KeyTrigger(Key.LeftControl);
			pressControl.AddTag("temporary");
			var multiSelectControl = new Command(() => SetMultiSelection(true)).Add(pressControl);
			multiSelectControl.AddTag("temporary");
			var releaseControl = new KeyTrigger(Key.LeftControl, State.Releasing);
			releaseControl.AddTag("temporary");
			var disableMultiSelectControl =
				new Command(() => SetMultiSelection(false)).Add(releaseControl);
			disableMultiSelectControl.AddTag("temporary");
		}
示例#2
0
		private bool CheckWichKeyForKeyTriggerToUse(bool foundFreeKey, Key key, int index)
		{
			if (foundFreeKey)
				return true;
			bool keyAlreadyUsed = false;
			foreach (Trigger newTrigger in GetTriggersOfCommand())
				keyAlreadyUsed = CheckIfKeyIsAlreadyUsed(newTrigger, key, keyAlreadyUsed);
			if (keyAlreadyUsed)
				return false;
			var keyTrigger = new KeyTrigger(key, State.Pressed);
			GetTriggersOfCommand()[index] = keyTrigger;
			return true;
		}