//Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent) private void Part_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { Part p = sender as Part; ScatterView parent = p.Parent as ScatterView; try { if (!(myClone == null)) { //Clone has been created, indicating drag interaction if (parent == null) { sw1.L0.L0_resultsSV.Items.Add(p); p.PartInL0(); sw1.L0.L0_resultsSV.Items.Remove(p); } else { if (parent.Name == "L0_resultsSV") { //Drops Part into L1 p.PartInL0(); } else { //Drops Part in L1Module p.PartInL1(); } parent.Items.Remove(p); } } else { if (parent == null) { return; //In Primer Designer's StackPanel } Center = Original; //Reset center so non-drag interactions don't mess up positioning if (parent.Name == "L1_prom" || parent.Name == "L1_rbs" || parent.Name == "L1_cds" || parent.Name == "L1_term") { //If in an L1 palette if (p.BorderBrush != Brushes.Gray) { //Restore original border p.BorderBrush = Brushes.Gray; } else { p.BorderBrush = Brushes.Navy; } //highlights border } } } catch (Exception exc) { Console.WriteLine("Part Completed \n" + exc); } }
/// <summary> /// Makes menu bar drop down. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MenuBarWindow_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { const double newOrientation = 0; double orientation = menuBar.ActualOrientation; var d = new Duration(TimeSpan.FromMilliseconds(300)); var da = new DoubleAnimation(orientation, newOrientation, d); var sb = new Storyboard(); sb.Children.Add(da); Storyboard.SetTarget(da, menuBar); Storyboard.SetTargetProperty(da, new PropertyPath("Orientation")); sb.FillBehavior = FillBehavior.Stop; sb.Begin(); menuBar.Orientation = newOrientation; double y = menuBar.Center.Y; var point = new Point(menuBar.Center.X, menuBar.Center.Y); point.X = 360; if (y < 280) { point.Y = 260; } else { point.Y = 530; } var da2 = new PointAnimation(menuBar.ActualCenter, point, d); var sb2 = new Storyboard(); sb2.Children.Add(da2); Storyboard.SetTarget(da2, menuBar); Storyboard.SetTargetProperty(da2, new PropertyPath("Center")); sb2.FillBehavior = FillBehavior.Stop; sb2.Begin(); menuBar.Center = point; }
//Determines if snap-to behavior is appropriate and where to snap to private void Level1_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { ScatterViewItem L1 = (ScatterViewItem)sender; //If its center is within the threshold of low.Y or high.Y or L2 if (L1.Center.Y < high.Y + snapThreshold) { L1.Center = new Point(low.X, high.Y); } if (L1.Center.Y > low.Y - snapThreshold) { L1.Center = new Point(low.X, low.Y); } if (L1.Center.Y > (sw1.L2.Center.Y - snapThreshold_L2)) { L1.Center = new Point(low.X, sw1.L2.Center.Y - snapThreshold_L2); } }
//When manipulation completed, check location for drop and transfer data to placeholder; then delete private void Sites_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { try { Sites s = sender as Sites; if (myClone != null) { Point pt = SurfaceWindow1.transformCoords(this, pd2.PD2_manual); if (pd2.PD2_buildTabs.SelectedIndex == 0) //If Manual is selected { VisualTreeHelper.HitTest(pd2.PD2_manual, null, new HitTestResultCallback(sitesCallback), new PointHitTestParameters(pt)); } ScatterView parent = (ScatterView)s.Parent; parent.Items.Remove(s); } } catch (Exception exc) { Console.WriteLine(exc); } }
//Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent) private void L1Module_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { L1Module l = sender as L1Module; ScatterView parent = l.Parent as ScatterView; try { if (!(myClone == null)) { if ((parent.Name == "L1_permTab") || (parent.Name == "L1_manTab")) { //Drop L1Module into L2 or delete l.L1ModuleInL1(); } else { //Drop L1Module into L2Module or delete l.L1ModuleInL2(); } parent.Items.Remove(l); } else { if (parent.Name == "L2_L1ModulesSV") { //If in L2 if (l.BorderBrush != Brushes.White) { //Restore white border l.BorderBrush = Brushes.White; } else { l.BorderBrush = Brushes.Navy; } //highlights border } } } catch (Exception exc) { Console.WriteLine("L1M Completd \n" + exc); } }
//Allows trashing of the sequence SVI when you swipe it far enough to the right or left private void onDSManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { sw1.swipeToDelete((MenuDataSheet)sender); }
private void TouchLeaveBubble(object sender, ContainerManipulationCompletedEventArgs e) { int durationNote = 0; ScatterViewItem bubble = new ScatterViewItem(); bubble = e.Source as ScatterViewItem; Point bubbleCenter = bubble.ActualCenter; foreach (Bubble i in bubbles) { if (bubble.Name == ("b" + i.name)) durationNote = i.duration; } int width = int.Parse(GetWidth.Text); int height = int.Parse(GetHeight.Text); //int width = 1920; //int height = 1080; bubbleCenter.X = bubbleCenter.X * 1920 / width; bubbleCenter.Y = bubbleCenter.Y * 1080 / height; if (bubbleCenter.X <= 90) bubbleCenter.X = 120; else if (bubbleCenter.X >= 1830) bubbleCenter.X = 1800; else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60; //"Applatissement" de la portée (MAJ : Switch -> Tableau !) int offset=offsettab[((long)bubbleCenter.X/60)]; bubbleCenter.Y += offset; //Y dans le cadre portée ? //Si oui, animation //pas de else if (bubbleCenter.Y < 630 && bubbleCenter.Y > 105) { if (bubbleCenter.Y < 370) { if (bubbleCenter.Y >= 335) bubbleCenter.Y = 335; bubbleCenter.Y = Math.Floor((bubbleCenter.Y - 10) / 50) * 50 + 35; } else { if (bubbleCenter.Y <= 405) bubbleCenter.Y = 405; bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 20) / 50) * 50 + 5; } //Partie son******************************* //Le son se déclenche quand la bulle est lachée //En fonction de sa portée, on place la note dans le tableau qui convient String res = "silence"; int centreY = (int)bubbleCenter.Y; res = dictionary[centreY]; int centreX = (int)bubbleCenter.X; { if (centreY >= 335) stave1.fillArray(centreX, centreY, durationNote, res); else { stave2.fillArray(centreX, centreY, durationNote, res); } } //fin Partie son***************************** bubbleCenter.Y -= offset; bubbleCenter.X = bubbleCenter.X * width / 1920; bubbleCenter.Y = bubbleCenter.Y * height / 1080; Storyboard stb = new Storyboard(); PointAnimation moveCenter = new PointAnimation(); moveCenter.From = bubble.ActualCenter; moveCenter.To = bubbleCenter; moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15)); bubble.Center = bubbleCenter; moveCenter.FillBehavior = FillBehavior.Stop; stb.Children.Add(moveCenter); Storyboard.SetTarget(moveCenter, bubble); Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty)); stb.Begin(this); bubble.Visibility = Visibility.Collapsed; bubble.Visibility = Visibility.Visible; } }
private void SviScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { if (_fe.IsFullScreen) return; _svi.Opacity = _fe.OpacityNormal; const double dockwidth = 75; const double edge = 25; if (_fe.RemoveOnEdge) { if (_svi.Center.X > _sv.ActualWidth - edge || _svi.Center.X < edge || _svi.Center.Y > _sv.ActualHeight - edge || _svi.Center.Y < edge) { RaiseEvent(new RoutedEventArgs(CloseEvent, this)); _fe.TriggerClosedEvent(); } } if (_fe.ResetOnEdge) { if (_svi.Center.X > _sv.ActualWidth - edge || _svi.Center.X < edge || _svi.Center.Y > _sv.ActualHeight - edge || _svi.Center.Y < edge) { RaiseEvent(new RoutedEventArgs(ResetEvent, this)); _fe.Reset(); } } if (_fe.DockingStyle == DockingStyles.Right && _svi.Center.X > _sv.ActualWidth - dockwidth) Dock(); if (_fe.DockingStyle == DockingStyles.Left && _svi.Center.X < dockwidth) Dock(); if (_fe.DockingStyle == DockingStyles.Up && _svi.Center.Y < dockwidth) Dock(); if (_lastDragElement != null) _lastDragElement.ForceDrop(this, _fe); }
private void ScatterViewItem_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { GhostFrameManipulated(); }
/// <summary> /// Event occured when a Note is released /// Magnetise the current note /// Add the note in the right stave /// Move the note to its final place /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void touchLeave(object sender, ContainerManipulationCompletedEventArgs e) { NothingAtThisPlace = true; if (noteVM.Picked) return; noteVM.Picked = true; ScatterViewItem Note = new ScatterViewItem(); Note = e.Source as ScatterViewItem; NoteCenter = Note.ActualCenter; int width = (int)sessionVM.Grid.ActualWidth; int height = (int)sessionVM.Grid.ActualHeight; NoteCenter.X = NoteCenter.X * 1920.0 / width; NoteCenter.Y = NoteCenter.Y * 1080.0 / height; if (NoteCenter.X < 150.0) NoteCenter.X = 150.0; else if (NoteCenter.X >= 1830.0) NoteCenter.X = 1800.0; else NoteCenter.X = Math.Floor((NoteCenter.X + 30.0) / 60.0) * 60.0; //"Applatissement" de la portée (MAJ : Switch -> Tableau !) int offset = GlobalVariables.ManipulationGrid[(int)(NoteCenter.X / 60.0)]; NoteCenter.Y += offset; int positionNote = (int)(NoteCenter.X - 120) / 60; Converter converter = new Converter(); //Y dans le cadre portée ? //Si oui, animation //Sinon transform to bubble if (NoteCenter.Y < 576.0 && NoteCenter.Y > 165.0) { if (NoteCenter.Y < 370.0) { if (NoteCenter.Y >= 344) NoteCenter.Y = 344; NoteCenter.Y = Math.Floor((NoteCenter.Y + 6.0) / 20.0) * 20.0 + 4.0; noteDroppedTopStave = true; } else { if (NoteCenter.Y <= 395) NoteCenter.Y = 395; NoteCenter.Y = Math.Floor((NoteCenter.Y + 15.0) / 20.0) * 20.0 - 5.0; noteDroppedTopStave = false; } virtualCenter = NoteCenter; NoteCenter.Y -= offset; NoteCenter.X = NoteCenter.X * width / 1920.0; NoteCenter.Y = NoteCenter.Y * height / 1080.0; noteVM.SVItem.Center = NoteCenter; #region STB Storyboard stb = new Storyboard(); PointAnimation moveCenter = new PointAnimation(); moveCenter.From = Note.ActualCenter; moveCenter.To = NoteCenter; moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15)); moveCenter.FillBehavior = FillBehavior.Stop; stb.Children.Add(moveCenter); Storyboard.SetTarget(moveCenter, Note); Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty)); #endregion moveCenter.Completed +=new EventHandler(moveCenter_Completed); Note.Center = NoteCenter; stb.Begin(SVItem); } else { noteVM.Picked = false; BackToBubbleFormat(true); DisplayPreviewGrid(false); } }
/// <summary> /// Changes item window's position and orientation when it's been manipulated. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SviItemWindow_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { double newOrientation = 0; double orientation = sviItemWindow.ActualOrientation; if (orientation > 90 && orientation < 270) { newOrientation = 180; } else if (orientation > 180) { newOrientation = 360; } var d = new Duration(TimeSpan.FromMilliseconds(300)); var da = new DoubleAnimation(orientation, newOrientation, d); var sb = new Storyboard(); sb.Children.Add(da); Storyboard.SetTarget(da, sviItemWindow); Storyboard.SetTargetProperty(da, new PropertyPath("Orientation")); sb.FillBehavior = FillBehavior.Stop; sb.Begin(); sviItemWindow.Orientation = newOrientation; double x = sviItemWindow.Center.X; double y = sviItemWindow.Center.Y; var point = new Point(sviItemWindow.Center.X, sviItemWindow.Center.Y); if (x < 260) { point.X = 260; } if (x > 1660) { point.X = 1660; } if (y < 160) { point.Y = 160; } if (y > 920) { point.Y = 920; } bool remove = false; if (y < 140 && x < 140) { point.Y = 300; point.X = 300; remove = true; } if (remove) { ItemWindow_exitButtonPressed(); } var da2 = new PointAnimation(sviItemWindow.ActualCenter, point, d); var sb2 = new Storyboard(); sb2.Children.Add(da2); Storyboard.SetTarget(da2, sviItemWindow); Storyboard.SetTargetProperty(da2, new PropertyPath("Center")); sb2.FillBehavior = FillBehavior.Stop; sb2.Begin(); sviItemWindow.Center = point; }
private void SelectorContainer_ManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { Point center = (sender as ScatterViewItem).ActualCenter; if (canvasHelper.PointInsideContainer(center, TrashContainer)) { SelectorContainer.Visibility = Visibility.Hidden; foreach (Stroke s in InkSelector.Strokes) { PageInkCanvas.Strokes.Remove(s); if (lastStrokes != null ) lastStrokes.Remove(s); } } else { double x = SelectorContainer.ActualCenter.X - SelectorContainer.Width / 2; double y = SelectorContainer.ActualCenter.Y - SelectorContainer.Height / 2; if ((x != 0 && y != 0) && (ActiveSessionManager.ActivePenMode == PenMode.Selection)) { // startSelection = false; Matrix inkTransform = new Matrix(); Rect b = InkSelector.Strokes.GetBounds(); double scaleX = SelectorContainer.Width / originalSelection.Width; double scaleY = SelectorContainer.Height / originalSelection.Height; inkTransform.Scale(scaleX, scaleY); inkTransform.Translate(x, y); // Transform strokes InkSelector.Strokes.Transform(inkTransform, false); foreach (Stroke s in InkSelector.Strokes) { s.DrawingAttributes.IsHighlighter = false; PageInkCanvas.Strokes.Add(s); } SelectorContainer.Visibility = Visibility.Hidden; } } DisableSelect(); e.Handled = true; }
private void ScatterViewItem_ScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { if (canvasHelper.PointInsideContainer((sender as ScatterViewItem).ActualCenter, TrashContainer)) { PrototypeElement selectedPrototypeElement = (sender as ScatterViewItem).Tag as PrototypeElement; if (selectedPrototypeElement != null) { ActiveSessionManager.RemovePrototypeElementFromPage(selectedPrototypeElement); Container.Items.Remove((sender as ScatterViewItem)); } } else { PrototypeElement instance = ((ScatterViewItem)sender).Tag as PrototypeElement; events.SetupEventsPanel(instance); } }
/// <summary> /// Event occured when a MelodyBubble is released /// Magnetise the current bubble /// Add the melody in the right stave /// Move the bubble to its final place /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void touchLeave(object sender, ContainerManipulationCompletedEventArgs e) { if (sessionVM.Session == null) return; if (melodyBubbleVM.Picked) return; melodyBubbleVM.Picked = true; ScatterViewItem bubble = new ScatterViewItem(); bubble = e.Source as ScatterViewItem; bubbleCenter = bubble.ActualCenter; // int width = int.Parse(GetWidth.Text); // int height = int.Parse(GetHeight.Text); int width = (int)sessionVM.Grid.ActualWidth; int height = (int)sessionVM.Grid.ActualHeight; bubbleCenter.X = bubbleCenter.X * 1920 / width; bubbleCenter.Y = bubbleCenter.Y * 1080 / height; if (bubbleCenter.X < 150.0) bubbleCenter.X = 150.0; else if (bubbleCenter.X >= 1830) bubbleCenter.X = 1800; else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60; //"Applatissement" de la portée (MAJ : Switch -> Tableau !) int offset = GlobalVariables.ManipulationGrid.ElementAtOrDefault((int)((long)bubbleCenter.X / 60)); bubbleCenter.Y += offset; PositionMelody = new Point(bubbleCenter.X, bubbleCenter.Y); //Y dans le cadre portée ? //Si oui, animation //pas de else if (bubbleCenter.Y < 576 && bubbleCenter.Y > 165) { if (bubbleCenter.Y < 370.0) { if (bubbleCenter.Y >= 344) bubbleCenter.Y = 344; bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 6.0) / 20.0) * 20.0 + 4.0; sessionVM.Session.StaveTop.StopMelody(); sessionVM.Session.StaveTop.AddMelody(melodyBubbleVM.MelodyBubble, ((int)PositionMelody.X - 120) / 60); melodyDroppedTopStave = true; } else { if (bubbleCenter.Y <= 395) bubbleCenter.Y = 395; bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 15.0) / 20.0) * 20.0 - 5.0; sessionVM.Session.StaveBottom.StopMelody(); sessionVM.Session.StaveBottom.AddMelody(melodyBubbleVM.MelodyBubble, ((int)PositionMelody.X - 120) / 60); melodyDroppedTopStave = false; } bubbleCenter.Y -= offset; bubbleCenter.X = bubbleCenter.X * width / 1920; bubbleCenter.Y = bubbleCenter.Y * height / 1080; #region STB centerSTB = new Storyboard(); PointAnimation moveCenter = new PointAnimation(); moveCenter.From = bubble.ActualCenter; moveCenter.To = bubbleCenter; moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15)); bubble.Center = bubbleCenter; moveCenter.FillBehavior = FillBehavior.Stop; centerSTB.Children.Add(moveCenter); Storyboard.SetTarget(moveCenter, bubble); Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty)); #endregion bubble.Center = bubbleCenter; moveCenter.Completed += new EventHandler(moveCenter_Completed); centerSTB.Begin(SVItem); } else { melodyBubbleVM.Picked = false; canAnimate = true; Animate(); } }
/// <summary> /// Event occured when a Bubble is released /// Magnetise the current bubble /// Add the note in the right stave /// Move the bubble to its final place /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void touchLeave(object sender, ContainerManipulationCompletedEventArgs e) { ScatterViewItem bubble = new ScatterViewItem(); bubble = e.Source as ScatterViewItem; bubbleCenter = bubble.ActualCenter; NothingAtThisPlace = true; int width = (int)sessionVM.Grid.ActualWidth; int height = (int)sessionVM.Grid.ActualHeight; bubbleCenter.X = bubbleCenter.X * 1920.0 / width; bubbleCenter.Y = bubbleCenter.Y * 1080.0 / height; if (bubbleCenter.X < 150.0) bubbleCenter.X = 150.0; else if (bubbleCenter.X >= 1830.0) bubbleCenter.X = 1800.0; else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30.0) / 60.0) * 60.0; //"Applatissement" de la portée (MAJ : Switch -> Tableau !) int offset = GlobalVariables.ManipulationGrid.ElementAtOrDefault((int)(bubbleCenter.X / 60.0)); bubbleCenter.Y += offset; Converter converter = new Converter(); int positionNote = (int)(bubbleCenter.X - 120) / 60; //Y dans le cadre portée ? //Si oui, animation //pas de else if (bubbleCenter.Y < 576.0 && bubbleCenter.Y > 165.0) { if (bubbleCenter.Y < 370.0) { if (bubbleCenter.Y >= 344.0) bubbleCenter.Y = 344.0; bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 6.0) / 20.0) * 20.0 + 4.0; bubbleDroppedTopStave = true; } else { if (bubbleCenter.Y <= 395) bubbleCenter.Y = 395; bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 15.0) / 20.0) * 20.0 - 5.0; bubbleDroppedTopStave = false; } noteBubbleVM.NoteBubble.Note = new Note(converter.getOctave(bubbleCenter.Y), noteBubbleVM.NoteBubble.Note.Duration, converter.getPitch(bubbleCenter.Y), positionNote, noteBubbleVM.NoteBubble.Note.Sharp, noteBubbleVM.NoteBubble.Note.Flat); virtualCenter = bubbleCenter; bubbleCenter.Y -= offset; bubbleCenter.X = bubbleCenter.X * width / 1920.0; bubbleCenter.Y = bubbleCenter.Y * height / 1080.0; #region STB Storyboard stb = new Storyboard(); PointAnimation moveCenter = new PointAnimation(); moveCenter.From = bubble.ActualCenter; moveCenter.To = bubbleCenter; moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15)); moveCenter.FillBehavior = FillBehavior.Stop; stb.Children.Add(moveCenter); Storyboard.SetTarget(moveCenter, bubble); Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty)); #endregion bubble.Center = bubbleCenter; moveCenter.Completed += new EventHandler(moveCenter_Completed); stb.Begin(SVItem); } else { canAnimate = true; Animate(); DisplayPreviewGrid(false); } }
private void TouchLeaveBubble(object sender, ContainerManipulationCompletedEventArgs e) { int durationNote = 0; ScatterViewItem bubble = new ScatterViewItem(); bubble = e.Source as ScatterViewItem; Point bubbleCenter = bubble.ActualCenter; foreach (Bubble i in bubbles) { if (bubble.Name == ("b" + i.name)) { durationNote = i.duration; } } int width = int.Parse(GetWidth.Text); int height = int.Parse(GetHeight.Text); //int width = 1920; //int height = 1080; bubbleCenter.X = bubbleCenter.X * 1920 / width; bubbleCenter.Y = bubbleCenter.Y * 1080 / height; if (bubbleCenter.X <= 90) { bubbleCenter.X = 120; } else if (bubbleCenter.X >= 1830) { bubbleCenter.X = 1800; } else { bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60; } //"Applatissement" de la portée (MAJ : Switch -> Tableau !) int offset = offsettab[((long)bubbleCenter.X / 60)]; bubbleCenter.Y += offset; //Y dans le cadre portée ? //Si oui, animation //pas de else if (bubbleCenter.Y < 630 && bubbleCenter.Y > 105) { if (bubbleCenter.Y < 370) { if (bubbleCenter.Y >= 335) { bubbleCenter.Y = 335; } bubbleCenter.Y = Math.Floor((bubbleCenter.Y - 10) / 50) * 50 + 35; } else { if (bubbleCenter.Y <= 405) { bubbleCenter.Y = 405; } bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 20) / 50) * 50 + 5; } //Partie son******************************* //Le son se déclenche quand la bulle est lachée //En fonction de sa portée, on place la note dans le tableau qui convient String res = "silence"; int centreY = (int)bubbleCenter.Y; res = dictionary[centreY]; int centreX = (int)bubbleCenter.X; { if (centreY >= 335) { stave1.fillArray(centreX, centreY, durationNote, res); } else { stave2.fillArray(centreX, centreY, durationNote, res); } } //fin Partie son***************************** bubbleCenter.Y -= offset; bubbleCenter.X = bubbleCenter.X * width / 1920; bubbleCenter.Y = bubbleCenter.Y * height / 1080; Storyboard stb = new Storyboard(); PointAnimation moveCenter = new PointAnimation(); moveCenter.From = bubble.ActualCenter; moveCenter.To = bubbleCenter; moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15)); bubble.Center = bubbleCenter; moveCenter.FillBehavior = FillBehavior.Stop; stb.Children.Add(moveCenter); Storyboard.SetTarget(moveCenter, bubble); Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty)); stb.Begin(this); bubble.Visibility = Visibility.Collapsed; bubble.Visibility = Visibility.Visible; } }
//Allows trashing of the sequence SVI when you swipe it far enough to the right or left private void onDSManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { sw1.swipeToDelete((MenuDataSheet)sender); }
//When manipulation completed, check location for drop and transfer data to placeholder; then delete private void Sites_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { try { Sites s = sender as Sites; if (myClone != null) { Point pt = SurfaceWindow1.transformCoords(this, pd2.PD2_manual); if (pd2.PD2_buildTabs.SelectedIndex == 0) //If Manual is selected { VisualTreeHelper.HitTest(pd2.PD2_manual, null, new HitTestResultCallback(sitesCallback), new PointHitTestParameters(pt)); } ScatterView parent = (ScatterView)s.Parent; parent.Items.Remove(s); } } catch (Exception exc) { Console.WriteLine(exc); } }
private void absBox_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { sw1.swipeToDelete((ScatterViewItem)sender); }
void seq_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { sw1.swipeToDelete((ScatterViewItem)sender); }
//Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent) private void Part_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { Part p = sender as Part; ScatterView parent = p.Parent as ScatterView; try { if (!(myClone == null)) { //Clone has been created, indicating drag interaction if (parent == null) { sw1.L0.L0_resultsSV.Items.Add(p); p.PartInL0(); sw1.L0.L0_resultsSV.Items.Remove(p); } else { if (parent.Name == "L0_resultsSV") { //Drops Part into L1 p.PartInL0(); } else { //Drops Part in L1Module p.PartInL1(); } parent.Items.Remove(p); } } else { if (parent == null) return; //In Primer Designer's StackPanel Center = Original; //Reset center so non-drag interactions don't mess up positioning if (parent.Name == "L1_prom" || parent.Name == "L1_rbs" || parent.Name == "L1_cds" || parent.Name == "L1_term") { //If in an L1 palette if (p.BorderBrush != Brushes.Gray) { //Restore original border p.BorderBrush = Brushes.Gray; } else { p.BorderBrush = Brushes.Navy; } //highlights border } } } catch (Exception exc) { Console.WriteLine("Part Completed \n" + exc); } }
//Determines if snap-to behavior is appropriate and where to snap to private void Level1_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { ScatterViewItem L1 = (ScatterViewItem)sender; //If its center is within the threshold of low.Y or high.Y or L2 if (L1.Center.Y < high.Y + snapThreshold) L1.Center = new Point(low.X, high.Y); if (L1.Center.Y > low.Y - snapThreshold) L1.Center = new Point(low.X, low.Y); if (L1.Center.Y > (sw1.L2.Center.Y - snapThreshold_L2)) L1.Center = new Point(low.X, sw1.L2.Center.Y - snapThreshold_L2); }
/// <summary> /// Used for logging the new Height Width X and Y After Manipulation /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void AfterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { ScatterViewItem item = (ScatterViewItem)sender; Menu.Menu menu = FindTheMenu((Canvas)(item.Content)); if (menu == null) { return; } if (e.ScaleFactor != 1) { Log.Resized(menu, item.Width, item.Height); } Log.Moved(item.Center, item.Orientation, menu); }
/// <summary> /// Handles the ScatterManipulationCompleted event of the ItemProxy control. /// When the user stops manipulating the item, begin an idle timeout. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="Microsoft.Surface.Presentation.Controls.ContainerManipulationCompletedEventArgs"/> instance containing the event data.</param> private void ScatterViewItem_ScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { FinishManipulation(sender as ScatterViewItem); }
//this is run when an item on the playground has been moved by the user void item_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { System.Diagnostics.Trace.WriteLine("hello container"); var item = sender as ScatterViewItem; if (ItemIsOutsideView(item)) { PlayGround.Items.Remove(item); LabelStatus.Content = " You discarded an item"; } else { ResetItem(item); } }
/// <summary> /// Handles docking for drawers /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DrawerSVI_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { if (_top) {//one of the top drawers if (DrawerSVI.Center.Y < 150) { DrawerSVI.Center = new Point(DRAWER_MIDDLE_X, DRAWER_MIDDLE_Y); DrawerSVI.Orientation = 180; } } else {//one of the bottom drawers if (DrawerSVI.Center.Y > 250) { DrawerSVI.Center = new Point(DRAWER_MIDDLE_X, DRAWER_BTMMIDDLE_Y); DrawerSVI.Orientation = 0; } } }
void svi_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) { var pos = svi.Center; pos.X += svi.ActualWidth/2; pos.Y += svi.ActualHeight/2; isMoving = false; var p = FindClosedGridPos(pos); if (p.X != Item.GridX || p.Y != Item.GridY) { Item.GridX = (int) p.X; Item.GridY = (int) p.Y; } UpdateGridPosition(); showTimer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(5) }; showTimer.Tick += (s, f) => { if (!isMoving) PART_Control.Visibility = Visibility.Collapsed; showTimer.Stop(); } ; showTimer.Start(); if (Item != null && Item.Dashboard != null) Item.Dashboard.TriggerChanged(); }