none
用UserControl定义滑动条问题? RRS feed

  • 问题

  • 由于项目需要,我需要用UserControl设计一个类似滑动条的控件(滑块背景,进度,Thumb都是图片,并可以由使用者修改 ),我定义了一个DependencyProperty Value,用来设置滑动条的进度,我如何知道自己定义的用户控件的大小呢?(这样我就可以根据Value来更新进度), 如下:

     ///百分比进度
            /// </summary>
            public double  Value
            {
                get { return (double )GetValue(ValueProperty); }
                set { SetValue(ValueProperty, value); }
            }
            // Using a DependencyProperty as the backing store for Value.  This enables animation, styling, binding, etc...
            public static readonly DependencyProperty ValueProperty =
                DependencyProperty.Register("Value", typeof(double), typeof(GpSlider), new PropertyMetadata(OnValueChange));

            public static void OnValueChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                var control = d as GpSlider;
                if (control != null)
                {
                    double pbValue = (double)e.NewValue;
                    RectangleGeometry  rect=new RectangleGeometry();

                   //如何知道这个usercontrol在被调用页面中的控件大小,如Width,如果我在UserControl把imgProgress设为固定值,倒是可以,但是不能自适应

                    rect.Rect = new Rect(0, 0, pbValue, 100);

                    ///imgProgress 是图像的进度

                      control.imgProgress.Clip = rect;
           
                }

    2013年5月4日 13:35

答案

全部回复