• 列表项模版


      列表框元素包含ListBoxItem。使用ItemTemplate可以定义列表项的内容。 样式listBoxStyle定义了一个ItemTemplate,其值为DataTemplate。DataTemplate用于数据绑定到元素上。Binding标记扩展可以用于DataTemplate元素。

      DataTemplate包含一个带三列的栅格。第一列包含字符串"车名:", 第二列绑定Name就是车的名字,第三列绑定图像。

      

    <Window x:Class="样式模版和资源.列表项模版"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="名车列表" Height="600" Width="300" WindowStartupLocation="CenterScreen">
        <Grid>
            <Grid.Resources>
            <Style x:Key="ListBoxStyle" TargetType="{x:Type ListBox}">
                <Setter Property="ItemTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*" SharedSizeGroup="MiddleColumn"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="60"/>
                                </Grid.RowDefinitions>                            
                                <TextBlock FontSize="16" VerticalAlignment="Center" Margin="5" FontStyle="Italic" Grid.Column="0">车名:</TextBlock>
                                <TextBlock FontSize="16" VerticalAlignment="Center" Margin="5" Text="{Binding Name}" FontWeight="Bold" Grid.Column="1"/>
                                <Border Margin="4,0" Grid.Column="2" BorderThickness="2" CornerRadius="4">
                                    <Border.BorderBrush>
                                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                            <GradientStop Offset="0" Color="#aaa"/>
                                            <GradientStop Offset="1" Color="#222"/>
                                        </LinearGradientBrush>
                                    </Border.BorderBrush>
                                    <Grid>
                                        <Rectangle>
                                            <Rectangle.Fill>
                                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                                    <GradientStop Offset="0" Color="#444"/>
                                                    <GradientStop Offset="0" Color="#fff"/>
                                                </LinearGradientBrush>
                                            </Rectangle.Fill>
                                        </Rectangle>
                                        <Image Width="48" Margin="2,2,2,1" Source="{Binding ImagePath}"/>
                                    </Grid>
                                </Border>
                            </Grid>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="Grid.IsSharedSizeScope" Value="True"/>
                </Style>
         </Grid.Resources>
            <Rectangle>
                <Rectangle.Fill>
                    <ImageBrush ImageSource="Resources/马.jpg"/>
                </Rectangle.Fill>
            </Rectangle>
            <ListBox Name="countryList1" ItemsSource="{Binding}" Style="{StaticResource ListBoxStyle}" Margin="10,60,10,20"  Opacity="100" />
        </Grid>
    </Window>

    后台代码定义一个车的类, 有车名和路径名称的属性

     class Car
        {
        
            public Car(string name, string imagePath)
            {
                this.Name = name;
                this.ImagePath = imagePath;
            }
    
            public string Name { get; set; }
            public string ImagePath { get; set; }
            public override string ToString()
            {
                return Name;
            }
        }

    定义一个静态类,插入车名和路径名,并返回数组

     public static class Cars
        {
            internal static Car[] GetCountries()
            {
                List<Car> countries = new List<Car>();
                countries.Add(new Car("奥迪", "Resources/奥迪.png"));
                countries.Add(new Car("宝马", "Resources/宝马.png"));
                countries.Add(new Car("保时捷", "Resources/保时捷.png"));
                countries.Add(new Car("奔驰", "Resources/奔驰.png"));
                countries.Add(new Car("本田", "Resources/本田.png"));
                countries.Add(new Car("宾利", "Resources/宾利.png"));
                countries.Add(new Car("大众", "Resources/大众.png"));
                countries.Add(new Car("法拉利", "Resources/法拉利.png"));
                countries.Add(new Car("福特", "Resources/福特.png"));
                countries.Add(new Car("悍马", "Resources/悍马.png"));
                countries.Add(new Car("凯迪拉克", "Resources/凯迪拉克.png"));
                countries.Add(new Car("兰博基尼", "Resources/兰博基尼.png"));
                countries.Add(new Car("雷克萨斯", "Resources/雷克萨斯.png"));
                countries.Add(new Car("路虎", "Resources/路虎.png"));
                countries.Add(new Car("玛莎拉蒂", "Resources/玛莎拉蒂.png"));
                countries.Add(new Car("日产", "Resources/日产.png"));
                countries.Add(new Car("沃尔沃", "Resources/沃尔沃.png"));
                countries.Add(new Car("一汽", "Resources/一汽.png"));
                countries.Add(new Car("英菲尼迪", "Resources/英菲尼迪.png"));
                return countries.ToArray();
            }
        }

    在列表项模版后台绑定

      public 列表项模版()
      {
            InitializeComponent();
            this.DataContext = Cars.GetCountries();
       }

    最后呈现效果如下:

  • 相关阅读:
    ABP 从数据库读取数据时的注意事项
    JQuery/JS插件 jsTree加载树,普通加载,点一级加载一级
    MVC HandleErrorAttribte特性
    GetForegroundWindow获取的是托管进程ApplicationFrameHost,而不是真正的进程,比如XD软件
    异常:System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms FIPS信息标准限值了MD5加密
    c# word文档的操作
    winfrom 图片裁剪 圆形头像
    css3有哪些新特性?
    元素的alt和title有什么异同?
    label的作用是什么?怎么用的?
  • 原文地址:https://www.cnblogs.com/hdsong/p/5071518.html
Copyright © 2020-2023  润新知