public PresentationSettingsViewModel(IMeasuringGroupEditorViewModel measuringGroupEditorViewModel, Dictionary <Guid, PositioningInfoViewModel> positioningInfosDictionary) { _measuringGroupEditorViewModel = measuringGroupEditorViewModel; _positioningInfosDictionary = positioningInfosDictionary; PresentationElementViewModels = new ObservableCollection <PresentationElementViewModel>(); AddGroupCommand = new RelayCommand(OnAddGroup); DeleteGroupCommand = new RelayCommand(OnDeleteGroup, CanExecuteDeleteGroup); FilterList = new List <string>() { _allString, _groupsString, MeasuringKeys.CONTROL_SIGNAL, MeasuringKeys.ANALOG_MEASURING_ELEMENT, MeasuringKeys.DISCRET_MEASURING_ELEMENT, MeasuringKeys.DATE_TIME_ELEMENT, }; SelectedFilterString = _allString; _measuringElementViewModelFactory = StaticContainer.Container.Resolve <IMeasuringElementViewModelFactory>(); CopySelectedPositionInfo = new RelayCommand(() => { _bufferPositioningInfoViewModel = SelectedElementViewModel.PositioningInfoViewModel; (PasteSelectedPositionInfo as RelayCommand)?.RaiseCanExecuteChanged(); (PasteOnlySizeSelectedPositionInfo as RelayCommand)?.RaiseCanExecuteChanged(); }); PasteSelectedPositionInfo = new RelayCommand(() => { SelectedElementViewModel.PositioningInfoViewModel.OffsetLeft = _bufferPositioningInfoViewModel.OffsetLeft; SelectedElementViewModel.PositioningInfoViewModel.OffsetTop = _bufferPositioningInfoViewModel.OffsetTop; SelectedElementViewModel.PositioningInfoViewModel.SizeHeight = _bufferPositioningInfoViewModel.SizeHeight; SelectedElementViewModel.PositioningInfoViewModel.SizeWidth = _bufferPositioningInfoViewModel.SizeWidth; }, () => _bufferPositioningInfoViewModel != null); PasteOnlySizeSelectedPositionInfo = new RelayCommand(() => { SelectedElementViewModel.PositioningInfoViewModel.SizeHeight = _bufferPositioningInfoViewModel.SizeHeight; SelectedElementViewModel.PositioningInfoViewModel.SizeWidth = _bufferPositioningInfoViewModel.SizeWidth; }, () => _bufferPositioningInfoViewModel != null); SelectElement = new RelayCommand <object>((o => { if (o is PresentationElementViewModel presentationElementViewModel) { SelectedElementViewModel = presentationElementViewModel; } })); }
private bool IsElementInAnotherElement(PositioningInfoViewModel basePositioning, PositioningInfoViewModel elementPositioningToCheck) { var isHorizontalMatch = elementPositioningToCheck.OffsetLeft > basePositioning.OffsetLeft && elementPositioningToCheck.OffsetLeft < basePositioning.OffsetLeft + basePositioning.SizeWidth; var isVerticalMatch = elementPositioningToCheck.OffsetTop > basePositioning.OffsetTop && elementPositioningToCheck.OffsetTop < basePositioning.OffsetTop + basePositioning.SizeHeight; return(isVerticalMatch && isHorizontalMatch); }
private IPositioningInfo SavePositioningInfo( PositioningInfoViewModel positioningInfoViewModel) { var res = StaticContainer.Container.Resolve <IPositioningInfo>(); res.SizeHeight = positioningInfoViewModel.SizeHeight; res.OffsetLeft = positioningInfoViewModel.OffsetLeft; res.OffsetTop = positioningInfoViewModel.OffsetTop; res.SizeWidth = positioningInfoViewModel.SizeWidth; return(res); }
public void PositionChanged(int offset, OffsetKind offsetKind, PositioningInfoViewModel basePositioning) { if (_presentationGroupViewModel.IsMoveWithChildren) { foreach (var presentationElementViewModel in _presentationSettingsViewModel.PresentationElementViewModels) { if (presentationElementViewModel.IsSelected || !IsElementInAnotherElement(basePositioning, presentationElementViewModel.PositioningInfoViewModel)) { continue; } if (offsetKind == OffsetKind.Left) { presentationElementViewModel.PositioningInfoViewModel.OffsetLeft += offset; } else if (offsetKind == OffsetKind.Top) { presentationElementViewModel.PositioningInfoViewModel.OffsetTop += offset; } } } }