Nested Scroll Areas

前端 未结 7 548
失恋的感觉
失恋的感觉 2020-12-05 15:34

I creating a control for WPF, and I have a question for you WPF gurus out there.

I want my control to be able to expand to fit a resizable window.

In my con

7条回答
  •  伪装坚强ぢ
    2020-12-05 16:08

    I've created a class to work around this problem:

    public class RestrictDesiredSize : Decorator
    {
        Size lastArrangeSize = new Size(double.PositiveInfinity, double.PositiveInfinity);
    
        protected override Size MeasureOverride(Size constraint)
        {
            Debug.WriteLine("Measure: " + constraint);
            base.MeasureOverride(new Size(Math.Min(lastArrangeSize.Width, constraint.Width),
                                          Math.Min(lastArrangeSize.Height, constraint.Height)));
            return new Size(0, 0);
        }
    
        protected override Size ArrangeOverride(Size arrangeSize)
        {
            Debug.WriteLine("Arrange: " + arrangeSize);
            if (lastArrangeSize != arrangeSize) {
                lastArrangeSize = arrangeSize;
                base.MeasureOverride(arrangeSize);
            }
            return base.ArrangeOverride(arrangeSize);
        }
    }
    

    It will always return a desired size of (0,0), even if the containing element wants to be bigger. Usage:

    
         
    
    

提交回复
热议问题