private void UserControl_Loaded(object sender, RoutedEventArgs e) { myGrid.SizeChanged += MyGrid_SizeChanged; myGrid.Children.Clear(); _host = new LUTHost(); _host.PointSelectedEvent += _host_PointSelectedEvent; _host.PointMovedEvent += _host_PointMovedEvent; _host.PointReleasedEvent += _host_PointReleasedEvent; _host.PointCreateOrDeleteEvent += _host_PointCreateOrDeleteEvent; myGrid.Children.Add(_host); //needed for some reasons... _host.InvalidateArrange(); _host.UpdateLayout(); DrawPoints(); LUTChangedEvent?.Invoke(); }
private void _host_PointCreateOrDeleteEvent(double x, double y) { int hit = checkForPoint(x, y); if (hit > 0 && hit < _controlPoints.Count - 1) { _controlPoints.RemoveAt(hit); _selectedPoint = -1; _needsSolve = true; //Console.WriteLine("Removed point"); DrawPoints(); LUTChangedEvent?.Invoke(); } //else //{ // if (x > 0 && x < 1 && y >= 0 && y <= 1) // { // _controlPoints.Add(x, y); // Console.WriteLine("Added point"); // _host.DrawPoints(_controlPoints); // } //} }
private void myGrid_MouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Right && e.ButtonState == MouseButtonState.Pressed) { // Retreive the coordinates of the mouse button event. Point pt = e.GetPosition((UIElement)_host); double posX = pt.X / _host.ActualWidth; double posY = (_host.ActualHeight - pt.Y) / _host.ActualHeight; int hit = checkForPoint(posX, posY); if (posX > 0 && posX < 1 && posY >= 0 && posY <= 1) { if (_controlPoints.ContainsKey(posX)) { return; } _controlPoints.Add(posX, posY); _needsSolve = true; //Console.WriteLine("Added point"); DrawPoints(); LUTChangedEvent?.Invoke(); } } }
private void _host_PointReleasedEvent() { //Console.WriteLine("RELEASE!"); _selectedPoint = -1; LUTChangedEvent?.Invoke(); }