微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ItemsControl,ItemsPanel和ItemsPresenter(Silverlight,XAML)

我完全被这3个术语所困惑,何时使用哪个?什么是关系,他们是哪些控制的孩子?

说这是树是正确的:

ItemsControl> ItemsPresenter> ItemsPanel

解决方法

ItemsControl在概念上是一个容纳物品的控件。尝试简单地将此控件看作是零个或多个对象的持有者。

ItemsPresenter有点难以解释,但这是ItemsControl模板的一部分,它将定义项目放置在其中的位置。您的ItemsControl的模板可以是任何你喜欢的,比如说一个网格上有一些漂亮的图片在这个模板里,你可以把ItemsPresenter放在你想要的物品的位置,就在网格的中间。 (这个例子是从msdn开始,简化为便于阅读)

<Style targettype="HeaderedItemsControl">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate targettype="{x:Type HeaderedItemsControl}">
          <Grid>
            <Rectangle stroke="Black" Fill="Red"/>
            <ItemsPresenter Margin="2,0"/>
          </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

ItemsPanel是控制ItemsControl中项目布局的面板(或容器)。因此,如果您希望将您添加到ItemsControl中的项目以水平的方式显示,那么yor项目面板可以简单地是一个StackOut,其Orientation属性设置为Horizo​​ntal。

这一切都有道理吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐