/// <summary> /// Select all elements that are in the drag selection rectangle. /// </summary> private void ApplyDragSelectionRect() { dragSelectionCanvas.Visibility = Visibility.Collapsed; double x = Canvas.GetLeft(dragSelectionBorder); double y = Canvas.GetTop(dragSelectionBorder); double width = dragSelectionBorder.Width; double height = dragSelectionBorder.Height; Rect dragRect = new Rect(x, y, width, height); // // Inflate the drag selection-rectangle by 1/10 of its size to // make sure the intended item is selected. // dragRect.Inflate(width / 10, height / 10); // // Clear the current selection. // listBox.SelectedItems.Clear(); // // Find and select all the list box items. // foreach (KeyframeViewModel key in keyItems) { double KeyPosition = CanvasCalculator.GetCanvasOffset(ActualWidth, TimeRangeStart, TimeRangeEnd, key.Time); Rect itemRect = new Rect(KeyPosition, 2, 8, 20); if (dragRect.Contains(itemRect)) { listBox.SelectedItems.Add(key); } } }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { //Index 0 = width //Index 1 = TimeRangeStart //Index 2 = TimeRangeEnd //Index 3 = Time double actualWidth = (double)values[0]; int timeRangeStart = (int)values[1]; int timeRangeEnd = (int)values[2]; int time = (int)values[3]; return(CanvasCalculator.GetCanvasOffset(actualWidth, timeRangeStart, timeRangeEnd, time) - 3); }
//private void InvalidatePositions() //{ // foreach(KeyframeListItem key in keyItems) // { // key.TimelinePositionX = GetCanvasPosition(key.Time) - 3; // } // //System.Diagnostics.Debug.WriteLine("InvalidatePositions"); //} private double GetCanvasPosition(int time) { return(CanvasCalculator.GetCanvasOffset(ActualWidth, TimeRangeStart, TimeRangeEnd, time)); }