• 模板


    ItemContainerStyle可用来指定每个item的触发器

    <ItemsControl Margin="10"
                  ItemsSource="{Binding Source={StaticResource myTodoList}}">
      <!--The ItemsControl has no default visual appearance.
          Use the Template property to specify a ControlTemplate to define
          the appearance of an ItemsControl. The ItemsPresenter uses the specified
          ItemsPanelTemplate (see below) to layout the items. If an
          ItemsPanelTemplate is not specified, the default is used. (For ItemsControl,
          the default is an ItemsPanelTemplate that specifies a StackPanel.-->
      <ItemsControl.Template>
        <ControlTemplate TargetType="ItemsControl">
          <Border BorderBrush="Aqua" BorderThickness="1" CornerRadius="15">
            <ItemsPresenter/>
          </Border>
        </ControlTemplate>
      </ItemsControl.Template>
      <!--Use the ItemsPanel property to specify an ItemsPanelTemplate
          that defines the panel that is used to hold the generated items.
          In other words, use this property if you want to affect
          how the items are laid out.-->
      <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
          <WrapPanel />
        </ItemsPanelTemplate>
      </ItemsControl.ItemsPanel>
      <!--Use the ItemTemplate to set a DataTemplate to define
          the visualization of the data objects. This DataTemplate
          specifies that each data object appears with the Proriity
          and TaskName on top of a silver ellipse.-->
      <ItemsControl.ItemTemplate>
        <DataTemplate>
          <DataTemplate.Resources>
            <Style TargetType="TextBlock">
              <Setter Property="FontSize" Value="18"/>
              <Setter Property="HorizontalAlignment" Value="Center"/>
            </Style>
          </DataTemplate.Resources>
          <Grid>
            <Ellipse Fill="Silver"/>
            <StackPanel>
              <TextBlock Margin="3,3,3,0"
                         Text="{Binding Path=Priority}"/>
              <TextBlock Margin="3,0,3,7"
                         Text="{Binding Path=TaskName}"/>
            </StackPanel>
          </Grid>
        </DataTemplate>
      </ItemsControl.ItemTemplate>
      <!--Use the ItemContainerStyle property to specify the appearance
          of the element that contains the data. This ItemContainerStyle
          gives each item container a margin and a width. There is also
          a trigger that sets a tooltip that shows the description of
          the data object when the mouse hovers over the item container.-->
      <ItemsControl.ItemContainerStyle>
        <Style>
          <Setter Property="Control.Width" Value="100"/>
          <Setter Property="Control.Margin" Value="5"/>
          <Style.Triggers>
            <Trigger Property="Control.IsMouseOver" Value="True">
              <Setter Property="Control.ToolTip"
                      Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                              Path=Content.Description}"/>
            </Trigger>
          </Style.Triggers>
        </Style>
      </ItemsControl.ItemContainerStyle>
    </ItemsControl>

    下面是该示例在呈现时的屏幕快照:

    ItemsControl 示例屏幕快照

  • 相关阅读:
    为恶畏人知,恶中犹有善路,为善而急人知,善处即是恶根。
    win7 64位 php环境开启curl服务Call to undefined function
    php根据汉字获取拼音(php基于拼音搜索实现原理)
    Fatal error: Call to undefined function mb_detect_encoding()
    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
    springMVC介绍及配置
    Java--详解WebService技术
    网站SEO优化
    Java温故而知新(5)设计模式详解(23种)
    java温故而知新(9)OOP(面向对象编程)理念
  • 原文地址:https://www.cnblogs.com/yetsen/p/13567809.html
Copyright © 2020-2023  润新知