【问题标题】:wpf custom control scrollingwpf自定义控件滚动
【发布时间】:2023-03-07 11:56:01
【问题描述】:

我刚刚开始研究 wpf 中的自定义控件。我创建了一个从 Frameworkelement 继承的控件,并且正在绘制内容。内容大于窗口的高度。即使将控件放在滚动查看器中,滚动也不会出现。

【问题讨论】:

    标签: wpf scroll custom-controls scrollviewer


    【解决方案1】:

    由于您从 Framework Element 继承并使用 DrawingContext 绘制内容,因此控件可能无法正确测量。您应该了解 WPF 的布局系统。 WPF 关注two pass layout system。测量和安排。在 Measure Override 中,您需要告诉控件需要多少尺寸。在排列中,您需要将控件放置在正确的矩形中。

    以下情况将 300x300 像素返回给控件。您可能需要根据渲染内容的逻辑来计算大小

        protected override Size MeasureOverride(Size availableSize)
        {
            return new Size(300, 300);
        }
    

    【讨论】:

      【解决方案2】:

      设置:

      ScrollViewer.VerticalScrollBarVisibility="Visible"
      

      在您的自定义控件上。另外:

      ScrollViewer.CanContentScroll="True"
      

      【讨论】:

        猜你喜欢
        • 2019-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 2014-08-08
        • 2015-08-28
        • 1970-01-01
        相关资源
        最近更新 更多