コード例 #1
0
        private void IntegerTextBoxCrop_ValueChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (!isDragging)
            {
                double newLeft   = integerTextBoxCropLeft.Value * canvasCropVideo.ActualWidth / mediaInfo.Width;
                double newTop    = integerTextBoxCropTop.Value * canvasCropVideo.ActualHeight / mediaInfo.Height;
                double newRight  = integerTextBoxCropRight.Value * canvasCropVideo.ActualWidth / mediaInfo.Width;
                double newBottom = integerTextBoxCropBottom.Value * canvasCropVideo.ActualHeight / mediaInfo.Height;
                double newWidth  = canvasCropVideo.ActualWidth - newLeft - newRight;
                double newHeight = canvasCropVideo.ActualHeight - newTop - newBottom;

                if (newWidth < RECT_MIN_SIZE || newHeight < RECT_MIN_SIZE)
                {
                    IntegerTextBox itb = (IntegerTextBox)sender;
                    itb.ValueChanged -= IntegerTextBoxCrop_ValueChanged;
                    itb.Value         = (int)e.OldValue;
                    itb.ValueChanged += IntegerTextBoxCrop_ValueChanged;
                }
                else
                {
                    Canvas.SetLeft(rectangleCropVideo, newLeft);
                    Canvas.SetTop(rectangleCropVideo, newTop);
                    rectangleCropVideo.Width       = newWidth;
                    rectangleCropVideo.Height      = newHeight;
                    textBlockOutputResolution.Text = $"{(mediaInfo.Width - integerTextBoxCropLeft.Value - integerTextBoxCropRight.Value).ToString("0")}x{(mediaInfo.Height - integerTextBoxCropTop.Value - integerTextBoxCropBottom.Value).ToString("0")}";
                }
            }
        }
コード例 #2
0
        private static void OnValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            IntegerTextBox integerTextBox = (IntegerTextBox)sender;

            integerTextBox.RaiseValueChangedEvent(e);
        }