private static void OnPositionPropertyChange(DependencyObject d, DependencyPropertyChangedEventArgs e) { ScaleSlider obj = d as ScaleSlider; double offset = (obj.Position - obj.Min) / (obj.Max - obj.Min) * (obj.Width - obj.ArrowWidth); obj.Arrow.Margin = new Thickness(offset, 0, 0, 0); obj.PositionLabel.Margin = new Thickness(offset - 3, 8, 0, 0); obj.PositionLabel.Content = obj.Position; }
private static void OnTransformPropertyChange(DependencyObject d, DependencyPropertyChangedEventArgs e) { ScaleSlider obj = d as ScaleSlider; RotateTransform myRotateTransform = new RotateTransform(); ScaleTransform myScaleTransform = new ScaleTransform(); myScaleTransform.ScaleX = obj.LabelScaleXTransform; myScaleTransform.ScaleY = obj.LabelScaleYTransform; myScaleTransform.CenterY = 1; myRotateTransform.Angle = obj.LabelRotation; TransformGroup myTransformGroup = new TransformGroup(); myTransformGroup.Children.Add(myRotateTransform); myTransformGroup.Children.Add(myScaleTransform); obj.PositionLabel.RenderTransform = myTransformGroup; obj.PositionLabel.RenderTransformOrigin = new Point(0.45, 0.65); }