zoukankan      html  css  js  c++  java
  • WP7备注(41)(ItemsControl)

    DisplayMemberPath="Color" 选定显示的字段名

    <ListBox Grid.Column="2">
    <ListBox.ItemTemplate>
    <DataTemplate>
    <StackPanel Orientation="Horizontal">
    <Rectangle Width="48" Height="36"
    Margin="2"
    Fill="{Binding}" />
    <StackPanel Orientation="Horizontal"
    VerticalAlignment="Center">
    <TextBlock Text="{Binding Color.R,
    Converter={StaticResource stringFormat},
    ConverterParameter=' {0:X2}'}" />
    <TextBlock Text="{Binding Color.G,
    Converter={StaticResource stringFormat},
    ConverterParameter='-{0:X2}'}" />
    <TextBlock Text="{Binding Color.B,
    Converter={StaticResource stringFormat},
    ConverterParameter='-{0:X2}'}" />
    </StackPanel>
    </StackPanel>
    </DataTemplate>
    </ListBox.ItemTemplate>
    <SolidColorBrush Color="AliceBlue" />
    <SolidColorBrush Color="AntiqueWhite" />
    <SolidColorBrush Color="Aqua" />
    <SolidColorBrush Color="Aquamarine" />
    <SolidColorBrush Color="Azure" />
    …
    <SolidColorBrush Color="Wheat" />
    <SolidColorBrush Color="White" />
    <SolidColorBrush Color="WhiteSmoke" />
    <SolidColorBrush Color="Yellow" />
    <SolidColorBrush Color="YellowGreen" />
    </ListBox>

    image

    image

    <ListBox Name="fontFamilyListBox"
    Grid.Row="1"
    SelectedIndex="5"
    Style="{StaticResource listBoxStyle}">
    <ListBox.ItemTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding}"
    FontFamily="{Binding}" />
    </DataTemplate>
    </ListBox.ItemTemplate>
    <system:String>Arial</system:String>
    <system:String>Arial Black</system:String>
    <system:String>Calibri</system:String>
    <system:String>Comic Sans MS</system:String>
    <system:String>Courier New</system:String>
    <system:String>Georgia</system:String>
    <system:String>Lucida Sans Unicode</system:String>
    <system:String>Portable User Interface</system:String>
    <system:String>Segoe WP</system:String>
    <system:String>Segoe WP Black</system:String>
    <system:String>Segoe WP Bold</system:String>
    <system:String>Segoe WP Light</system:String>
    <system:String>Segoe WP Semibold</system:String>
    <system:String>Segoe WP SemiLight</system:String>
    <system:String>Tahoma</system:String>
    <system:String>Times New Roman</system:String>
    <system:String>Trebuchet MS</system:String>
    <system:String>Verdana</system:String>
    <system:String>Webdings</system:String>
    </ListBox>

    image

    using System;
    using System.Text;
    using System.Windows.Media;
    namespace Petzold.Phone.Silverlight
    {
    public class ColorPresenter
    {
    static string[] colorNames =
    {
    "AliceBlue", "AntiqueWhite", "Aqua", "Aquamarine", "Azure",
    "Beige", "Bisque", "Black", "BlanchedAlmond", "Blue", "BlueViolet",
    "Brown", "BurlyWood", "CadetBlue", "Chartreuse", "Chocolate",
    "Coral", "CornflowerBlue", "Cornsilk", "Crimson", "Cyan",
    "DarkBlue", "DarkCyan", "DarkGoldenrod", "DarkGray", "DarkGreen",
    "DarkKhaki", "DarkMagenta", "DarkOliveGreen", "DarkOrange",
    "DarkOrchid", "DarkRed", "DarkSalmon", "DarkSeaGreen",
    "DarkSlateBlue", "DarkSlateGray", "DarkTurquoise", "DarkViolet",
    "DeepPink", "DeepSkyBlue", "DimGray", "DodgerBlue", "Firebrick",
    "FloralWhite", "ForestGreen", "Fuchsia", "Gainsboro", "GhostWhite",
    "Gold", "Goldenrod", "Gray", "Green", "GreenYellow", "Honeydew",
    "HotPink", "IndianRed", "Indigo", "Ivory", "Khaki", "Lavender",
    "LavenderBlush", "LawnGreen", "LemonChiffon", "LightBlue",
    "LightCoral", "LightCyan", "LightGoldenrodYellow", "LightGray",
    "LightGreen", "LightPink", "LightSalmon", "LightSeaGreen",
    "LightSkyBlue", "LightSlateGray", "LightSteelBlue", "LightYellow",
    "Lime", "LimeGreen", "Linen", "Magenta", "Maroon",
    "MediumAquamarine", "MediumBlue", "MediumOrchid", "MediumPurple",
    "MediumSeaGreen", "MediumSlateBlue", "MediumSpringGreen",
    "MediumTurquoise", "MediumVioletRed", "MidnightBlue", "MintCream",
    "MistyRose", "Moccasin", "NavajoWhite", "Navy", "OldLace", "Olive",
    "OliveDrab", "Orange", "OrangeRed", "Orchid", "PaleGoldenrod",
    "PaleGreen", "PaleTurquoise", "PaleVioletRed", "PapayaWhip",
    "PeachPuff", "Peru", "Pink", "Plum", "PowderBlue", "Purple", "Red",
    "RosyBrown", "RoyalBlue", "SaddleBrown", "Salmon", "SandyBrown",
    "SeaGreen", "SeaShell", "Sienna", "Silver", "SkyBlue", "SlateBlue",
    "SlateGray", "Snow", "SpringGreen", "SteelBlue", "Tan", "Teal",
    "Thistle", "Tomato", "Turquoise", "Violet", "Wheat", "White",
    "WhiteSmoke", "Yellow", "YellowGreen"
    };
    static uint[] uintColors =
    {
    0xFFF0F8FF, 0xFFFAEBD7, 0xFF00FFFF, 0xFF7FFFD4, 0xFFF0FFFF,
    0xFFF5F5DC, 0xFFFFE4C4, 0xFF000000, 0xFFFFEBCD, 0xFF0000FF,
    0xFF8A2BE2, 0xFFA52A2A, 0xFFDEB887, 0xFF5F9EA0, 0xFF7FFF00,
    0xFFD2691E, 0xFFFF7F50, 0xFF6495ED, 0xFFFFF8DC, 0xFFDC143C,
    0xFF00FFFF, 0xFF00008B, 0xFF008B8B, 0xFFB8860B, 0xFFA9A9A9,
    0xFF006400, 0xFFBDB76B, 0xFF8B008B, 0xFF556B2F, 0xFFFF8C00,
    0xFF9932CC, 0xFF8B0000, 0xFFE9967A, 0xFF8FBC8F, 0xFF483D8B,
    0xFF2F4F4F, 0xFF00CED1, 0xFF9400D3, 0xFFFF1493, 0xFF00BFFF,
    0xFF696969, 0xFF1E90FF, 0xFFB22222, 0xFFFFFAF0, 0xFF228B22,
    0xFFFF00FF, 0xFFDCDCDC, 0xFFF8F8FF, 0xFFFFD700, 0xFFDAA520,
    0xFF808080, 0xFF008000, 0xFFADFF2F, 0xFFF0FFF0, 0xFFFF69B4,
    0xFFCD5C5C, 0xFF4B0082, 0xFFFFFFF0, 0xFFF0E68C, 0xFFE6E6FA,
    0xFFFFF0F5, 0xFF7CFC00, 0xFFFFFACD, 0xFFADD8E6, 0xFFF08080,
    0xFFE0FFFF, 0xFFFAFAD2, 0xFFD3D3D3, 0xFF90EE90, 0xFFFFB6C1,
    0xFFFFA07A, 0xFF20B2AA, 0xFF87CEFA, 0xFF778899, 0xFFB0C4DE,
    0xFFFFFFE0, 0xFF00FF00, 0xFF32CD32, 0xFFFAF0E6, 0xFFFF00FF,
    0xFF800000, 0xFF66CDAA, 0xFF0000CD, 0xFFBA55D3, 0xFF9370DB,
    0xFF3CB371, 0xFF7B68EE, 0xFF00FA9A, 0xFF48D1CC, 0xFFC71585,
    0xFF191970, 0xFFF5FFFA, 0xFFFFE4E1, 0xFFFFE4B5, 0xFFFFDEAD,
    0xFF000080, 0xFFFDF5E6, 0xFF808000, 0xFF6B8E23, 0xFFFFA500,
    0xFFFF4500, 0xFFDA70D6, 0xFFEEE8AA, 0xFF98FB98, 0xFFAFEEEE,
    0xFFDB7093, 0xFFFFEFD5, 0xFFFFDAB9, 0xFFCD853F, 0xFFFFC0CB,
    0xFFDDA0DD, 0xFFB0E0E6, 0xFF800080, 0xFFFF0000, 0xFFBC8F8F,
    0xFF4169E1, 0xFF8B4513, 0xFFFA8072, 0xFFF4A460, 0xFF2E8B57,
    0xFFFFF5EE, 0xFFA0522D, 0xFFC0C0C0, 0xFF87CEEB, 0xFF6A5ACD,
    0xFF708090, 0xFFFFFAFA, 0xFF00FF7F, 0xFF4682B4, 0xFFD2B48C,
    0xFF008080, 0xFFD8BFD8, 0xFFFF6347, 0xFF40E0D0, 0xFFEE82EE,
    0xFFF5DEB3, 0xFFFFFFFF, 0xFFF5F5F5, 0xFFFFFF00, 0xFF9ACD32
    };
    // Static constructor
    static ColorPresenter()
    {
    Colors = new ColorPresenter[140];
    for (int i = 0; i < 140; i++)
    {
    // Break down the color into components
    byte A = (byte)((uintColors[i] & 0xFF000000) >> 24);
    byte R = (byte)((uintColors[i] & 0x00FF0000) >> 16);
    byte G = (byte)((uintColors[i] & 0x0000FF00) >> 8);
    byte B = (byte)((uintColors[i] & 0x000000FF) >> 0);
    // Create a display name for the color
    StringBuilder builder = new StringBuilder();
    foreach (char ch in colorNames[i])
    {
    if (builder.Length == 0 || Char.IsLower(ch))
    builder.Append(ch);
    else
    {
    builder.Append(' ');
    builder.Append(ch);
    }
    }
    // Create a ColorPresenter for each color
    ColorPresenter clrPresenter = new ColorPresenter();
    clrPresenter.Color = Color.FromArgb(A, R, G, B);
    clrPresenter.Name = colorNames[i];
    clrPresenter.DisplayName = builder.ToString();
    clrPresenter.Brush = new SolidColorBrush(clrPresenter.Color);
    // Add it to the static array
    Colors[i] = clrPresenter;
    }
    }
    public static ColorPresenter[] Colors { protected set; get; }
    public Color Color { protected set; get; }
    public string Name { protected set; get; }
    public string DisplayName { protected set; get; }
    public Brush Brush { protected set; get; }
    public override string ToString()
    {
    return Name;
    }
    }
    }
    
    <phone:PhoneApplicationPage.Resources>
    <petzold:ColorPresenter x:Key="colorPresenter" />
    <petzold:StringFormatConverter x:Key="stringFormat" />
    </phone:PhoneApplicationPage.Resources>
    
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <ListBox Grid.Row="0"
    Name="listBox"
    ItemsSource="{Binding Source={StaticResource colorPresenter},
    Path=Colors}">
    <ListBox.ItemTemplate>
    <DataTemplate>
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Rectangle Grid.Column="0"
    Fill="{Binding Brush}"
    Width="72" Height="48"
    Margin="2 2 6 2" />
    <StackPanel Grid.Column="1"
    Orientation="Horizontal"
    VerticalAlignment="Center">
    <TextBlock Text="{Binding DisplayName}" />
    <TextBlock Text="{Binding Color.R,
    Converter={StaticResource stringFormat},
    ConverterParameter=' ({0:X2}'}" />
    <TextBlock Text="{Binding Color.G,
    Converter={StaticResource stringFormat},
    ConverterParameter='-{0:X2}'}" />
    <TextBlock Text="{Binding Color.B,
    Converter={StaticResource stringFormat},
    ConverterParameter='-{0:X2})'}" />
    </StackPanel>
    </Grid>
    </DataTemplate>
    </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock Grid.Row="1"
    FontSize="{StaticResource PhoneFontSizeExtraLarge}"
    HorizontalAlignment="Center"
    Margin="12"
    Text="{Binding ElementName=listBox,
    Path=SelectedItem.DisplayName}"
    Foreground="{Binding ElementName=listBox,
    Path=SelectedItem.Brush}" />
    </Grid>

    image

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"
    DataContext="{Binding Source={StaticResource studentBodyPresenter},
    Path=StudentBody}">
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0"
    Text="{Binding School}"
    FontSize="{StaticResource PhoneFontSizeLarge}"
    HorizontalAlignment="Center"
    TextDecorations="Underline" />
    <ListBox Grid.Row="1"
    Name="listBox"
    ItemsSource="{Binding Students}"
    DisplayMemberPath="FullName" />
    <Border Grid.Row="2"
    BorderBrush="{StaticResource PhoneForegroundBrush}"
    BorderThickness="{StaticResource PhoneBorderThickness}"
    HorizontalAlignment="Center"
    DataContext="{Binding ElementName=listBox,
    Path=SelectedItem}">
    <Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0"
    Text="{Binding FullName}"
    TextAlignment="Center" />
    <Image Grid.Row="1"
    Width="225"
    Height="300"
    Margin="24 6"
    Source="{Binding PhotoFilename}" />
    <StackPanel Grid.Row="2"
    Orientation="Horizontal"
    HorizontalAlignment="Center">
    <TextBlock Text="GPA=" />
    <TextBlock Text="{Binding GradePointAverage}" />
    </StackPanel>
    </Grid>
    </Border>
    
    using System;
    using System.ComponentModel;
    namespace ElPasoHighSchool
    {
    public class Student : INotifyPropertyChanged
    {
    public event PropertyChangedEventHandler PropertyChanged;
    string fullName;
    string firstName;
    string middleName;
    string lastName;
    string sex;
    string photoFilename;
    decimal gradePointAverage;
    public string FullName
    {
    set
    {
    if (fullName != value)
    {
    fullName = value;
    OnPropertyChanged("FullName");
    }
    }
    get
    {
    return fullName;
    }
    }
    public string FirstName
    {
    set
    {
    if (firstName != value)
    {
    firstName = value;
    OnPropertyChanged("FirstName");
    }
    }
    get
    {
    return firstName;
    }
    }
    public string MiddleName
    {
    set
    {
    if (middleName != value)
    {
    middleName = value;
    OnPropertyChanged("MiddleName");
    }
    }
    get
    {
    return middleName;
    }
    }
    public string LastName
    {
    set
    {
    if (lastName != value)
    {
    lastName = value;
    OnPropertyChanged("LastName");
    }
    }
    get
    {
    return lastName;
    }
    }
    public string Sex
    {
    set
    {
    if (sex != value)
    {
    sex = value;
    OnPropertyChanged("Sex");
    }
    }
    get
    {
    return sex;
    }
    }
    public string PhotoFilename
    {
    set
    {
    if (photoFilename != value)
    {
    photoFilename = value;
    OnPropertyChanged("PhotoFilename");
    }
    }
    get
    {
    return photoFilename;
    }
    }
    public decimal GradePointAverage
    {
    set
    {
    if (gradePointAverage != value)
    {
    gradePointAverage = value;
    OnPropertyChanged("GradePointAverage");
    }
    }
    get
    {
    return gradePointAverage;
    }
    }
    protected virtual void OnPropertyChanged(string propChanged)
    {
    if (PropertyChanged != null)
    PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
    }
    }
    }
    
    using System;
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    using System.Xml.Serialization;
    namespace ElPasoHighSchool
    {
    public class StudentBody : INotifyPropertyChanged
    {
    public event PropertyChangedEventHandler PropertyChanged;
    string school;
    ObservableCollection<Student> students =
    new ObservableCollection<Student>();
    public string School
    {
    set
    {
    if (school != value)
    {
    school = value;
    OnPropertyChanged("School");
    }
    }
    get
    {
    return school;
    }
    }
    public ObservableCollection<Student> Students
    {
    set
    {
    if (students != value)
    {
    students = value;
    OnPropertyChanged("Students");
    }
    }
    get
    {
    return students;
    }
    }
    protected virtual void OnPropertyChanged(string propChanged)
    {
    if (PropertyChanged != null)
    PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
    }
    }
    }
    
    <?xml version="1.0" encoding="utf-8"?>
    <StudentBody xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <School>El Paso High School</School>
    <Students>
    <Student>
    <FullName>Adkins Bowden</FullName>
    <FirstName>Adkins</FirstName>
    <MiddleName />
    <LastName>Bowden</LastName>
    <Sex>Male</Sex>
    <PhotoFilename>
    http://www.charlespetzold.com/Students/AdkinsBowden.png
    </PhotoFilename>
    <GradePointAverage>2.71</GradePointAverage>
    </Student>
    <Student>
    <FullName>Alfred Black</FullName>
    <FirstName>Alfred</FirstName>
    <MiddleName />
    <LastName>Black</LastName>
    <Sex>Male</Sex>
    <PhotoFilename>
    http://www.charlespetzold.com/Students/AlfredBlack.png
    </PhotoFilename>
    <GradePointAverage>2.87</GradePointAverage>
    </Student>
    …
    <Student>
    <FullName>William Sheley Warnock</FullName>
    <FirstName>William</FirstName>
    <MiddleName>Sheley</MiddleName>
    <LastName>Warnock</LastName>
    <Sex>Male</Sex>
    <PhotoFilename>
    http://www.charlespetzold.com/Students/WilliamSheleyWarnock.png
    </PhotoFilename>
    <GradePointAverage>1.82</GradePointAverage>
    </Student>
    </Students>
    </StudentBody>
    
    using System;
    using System.ComponentModel;
    using System.IO;
    using System.Net;
    using System.Windows.Threading;
    using System.Xml.Serialization;
    namespace ElPasoHighSchool
    {
    public class StudentBodyPresenter : INotifyPropertyChanged
    {
    public event PropertyChangedEventHandler PropertyChanged;
    StudentBody studentBody;
    Random rand = new Random();
    public StudentBodyPresenter()
    {
    Uri uri =
    new Uri("http://www.charlespetzold.com/Students/students.xml");
    WebClient webClient = new WebClient();
    webClient.DownloadStringCompleted += OnDownloadStringCompleted;
    webClient.DownloadStringAsync(uri);
    }
    void OnDownloadStringCompleted(object sender,
    DownloadStringCompletedEventArgs args)
    {
    StringReader reader = new StringReader(args.Result);
    XmlSerializer xml = new XmlSerializer(typeof(StudentBody));
    StudentBody = xml.Deserialize(reader) as StudentBody;
    DispatcherTimer tmr = new DispatcherTimer();
    tmr.Tick += TimerOnTick;
    tmr.Interval = TimeSpan.FromMilliseconds(100);
    tmr.Start();
    }
    public StudentBody StudentBody
    {
    protected set
    {
    if (studentBody != value)
    {
    studentBody = value;
    OnPropertyChanged("StudentBody");
    }
    }
    get
    {
    return studentBody;
    }
    }
    protected virtual void OnPropertyChanged(string propChanged)
    {
    if (PropertyChanged != null)
    PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
    }
    void TimerOnTick(object sender, EventArgs args)
    {
    int index = rand.Next(studentBody.Students.Count);
    Student student = studentBody.Students[index];
    double factor = 1 + (rand.NextDouble() - 0.5) / 5;
    student.GradePointAverage =
    Math.Max(0, Math.Min(5, Decimal.Round((decimal)factor *
    student.GradePointAverage, 2)));
    }
    }
    }
    </Grid>

    image

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer>
    <ItemsControl ItemsSource="{Binding Students}">
    <ItemsControl.ItemTemplate>
    <DataTemplate>
    <Border BorderBrush="{StaticResource PhoneAccentBrush}"
    BorderThickness="1"
    CornerRadius="12"
    Margin="2">
    <Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="2"
    Source="{Binding PhotoFilename}"
    Height="120"
    Width="90"
    Margin="6" />
    <StackPanel Grid.Row="0" Grid.Column="1"
    Orientation="Horizontal"
    VerticalAlignment="Center">
    <TextBlock Text="{Binding LastName}" />
    <TextBlock Text=", " />
    <TextBlock Text="{Binding FirstName}" />
    <TextBlock Text=", " />
    <TextBlock Text="{Binding MiddleName}" />
    </StackPanel>
    <StackPanel Grid.Row="1" Grid.Column="1"
    Orientation="Horizontal"
    VerticalAlignment="Center">
    <TextBlock Text="Grade Point Average = " />
    <TextBlock Text="{Binding GradePointAverage}" />
    </StackPanel>
    </Grid>
    </Border>
    </DataTemplate>
    </ItemsControl.ItemTemplate>
    </ItemsControl>
    </ScrollViewer>
    </Grid>

    image

    ItemsPanelTemplate:

    <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
    <StackPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    image

  • 相关阅读:
    ubuntu 安装 redis desktop manager
    ubuntu 升级内核
    Ubuntu 内核升级,导致无法正常启动
    spring mvc 上传文件,但是接收到文件后发现文件变大,且文件打不开(multipartfile)
    angular5 open modal
    POJ 1426 Find the Multiple(二维DP)
    POJ 3093 Margritas
    POJ 3260 The Fewest Coins
    POJ 1837 Balance(二维DP)
    POJ 1337 A Lazy Worker
  • 原文地址:https://www.cnblogs.com/otomii/p/2043016.html
Copyright © 2011-2022 走看看