private void CreateRegion(IAniRegion aniRegion) { AniRegion newRegion = Activator.CreateInstance(aniRegion.GetType()) as AniRegion; newRegion.OnSelectedControlChanged = (sender, e) => { this.lstProperties.SelectedObject = e.SelectedControl; }; newRegion.MouseDoubleClick += newRegion_MouseDoubleClick; newRegion.RegionName = string.Format("region{0}", this.tabRegions.Items.Count + 1); ScrollViewer scrollViewer = new ScrollViewer(); scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; scrollViewer.Height = this.tabRegions.Height; scrollViewer.Content = newRegion; TabItem tabItem = new TabItem(); tabItem.Header = newRegion.RegionName; tabItem.Content = scrollViewer; SetNewCreateRegionSize(newRegion); this.UserRegions.Insert(0, newRegion); CurrentProject.InsertRegion(0, newRegion); tabRegions.SelectedItem = tabItem; this.CurrentRegion = newRegion; }
private void lstRegion_PreviewMouseMove(object sender, MouseEventArgs e) { if (lstRegions.SelectedItems.Count < 1) { return; } Point mousePos = e.GetPosition(null); Vector diff = _StartRegionLstPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance) ) { ListBox listView = sender as ListBox; ListBoxItem listViewItem = UiSearchHelper.FindAnchestor <ListBoxItem>((DependencyObject)e.OriginalSource); if (null == listViewItem) { return; } IAniRegion aniRegion = (IAniRegion)listView.ItemContainerGenerator. ItemFromContainer(listViewItem); DataObject dragData = new DataObject(CommConst.DRAGED_REGION_DATA, aniRegion); DragDrop.DoDragDrop(lstControls, dragData, DragDropEffects.Move); } }
private void Grid_Drop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(CommConst.DRAGED_REGION_DATA)) { IAniRegion aniRegion = e.Data.GetData(CommConst.DRAGED_REGION_DATA) as IAniRegion; CreateRegion(aniRegion); } }