0

在 WPF 中有很多方法可以实现相同的目标。在这个例子中哪个更好?

<ItemsControl>
    <ItemsControl.Template>
        <ControlTemplate>
            <ScrollViewer>
                <ItemsPresenter />
            </ScrollViewer>
        </ControlTemplate>
    </ItemsControl.Template>
</ItemsControl>

或者

<ScrollViewer>
    <ItemsControl />
</ScrollViewer>
4

2 回答 2

2

这将是一个更好的解决方案

<ItemsControl>
    <ItemsControl.Template>
        <ControlTemplate>
            <ScrollViewer CanContentScroll="True">
                <StackPanel IsItemsHost="True" />
            </ScrollViewer>
        </ControlTemplate> 
    </ItemsControl.Template>
</ItemsControl>

这是因为与ItemsControlor不同ItemsPresenter,它StackPanel支持IScrollInfo界面,因此您可以对项目的滚动方式施加更多控制。

http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.iscrollinfo.aspx

于 2012-06-28T13:31:30.623 回答
2

在您真正需要模板之前,不要使用模板。=)

也就是说,我个人的经验法则是,如果我重复相同的工作超过两次(即三次及以上),我可能需要模板或实施一些其他可爱的 DRY 原则。

于 2012-07-02T08:08:14.353 回答