wpf自定义控件滚动

时间:2014-07-30 15:33:34

标签: wpf scroll custom-controls scrollviewer

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

集:

ScrollViewer.VerticalScrollBarVisibility="Visible"

在您的自定义控件上。也:

ScrollViewer.CanContentScroll="True"