zoukankan      html  css  js  c++  java
  • WPF:行列显示

    • 新建显示病人信息控件PatientElement
      Add-->NewItem-->WPF-->UserControl(WPF),名称:PatientElement.xmal

    • <UserControl x:Class="WPF_OPDrug.PatientElement"
                   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                   xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                   mc:Ignorable="d" 
                   d:DesignHeight="100" d:DesignWidth="300">
          <Grid Margin="5">
              <Border BorderThickness="2" Background="CadetBlue" BorderBrush="DarkGray">
                  
                  <StackPanel Orientation="Horizontal" >
                      <Image Name="image_photo" Height="100" Width="100" Source=""></Image>
                      <StackPanel Orientation="Vertical">
                          <StackPanel Orientation="Horizontal">
                              <TextBlock Name="block_PatName" Text="{Binding GivenName}" VerticalAlignment="Center" Margin="1,5" FontSize="18"></TextBlock>
                              <TextBlock Name="block_PatId" Text="{Binding Id}" VerticalAlignment="Center" Margin="2,5" FontSize="16" Foreground="Navy"/>
                              <TextBlock Name="block_Sex" Text="{Binding SexId}" VerticalAlignment="Center" Margin="1,5" FontSize="16" Foreground="Navy"></TextB
                          </StackPanel>
                          <StackPanel>
                              <TextBlock Name="block_Age" Text="{Binding Birthday}" VerticalAlignment="Center" Margin="2,5" FontSize="16" Foreground="Navy"></TextBlock>
                              <TextBlock Name="block_condition" Margin="5,0" FontSize="16" Foreground="Navy" Width="auto" TextWrapping="Wrap">病情</TextBlock>
                          </StackPanel>
                          </StackPanel>
                  </StackPanel>
              </Border>
          </Grid>
      </UserControl>
    • 在DataOP.cs中写函数从数据库model中获取信息获取
    •  /// <summary>
              /// 获取patient的必要个人信息
              /// </summary>
              /// 
              public List<Patient> GetPatInfor()
              {
                  var patient = (from p in his.Patient
                                 select new
                                 {
                                     GivenName = p.GivenName,
                                     Id=p.Id,
                                     SexId = p.SexId,
                                     Birthday = p.Birthday
                                 }).ToList().Select(o => new Patient
                               {
                                   GivenName = o.GivenName,
                                   Id = o.Id,
                                   SexId = o.SexId,
                                   Birthday = o.Birthday
                               }).ToList();
                  return patient;
              }
    • 显示病人信息的PatientWin.xmal
    • <Window x:Class="WPF_OPDrug.PatientWin"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              Title="PatientWin" WindowState="Maximized" Background="CadetBlue">
          <Grid>
                  <Border Name="queryBorder" BorderThickness="7">
                          <Grid Name="grid_Query">
                          </Grid>
                  </Border>
          </Grid>
      </Window>
    • 病人信息先行后列显示
    • /// <summary>
              /// //上下滑动显示,先行后列
              /// </summary>
              private void AddUpToDown()
              {
                  List<Patient> pat = dataOP.GetPatInfor();
                  int count = pat.Count;
                  //定义行数=屏幕宽度/控件宽度;列数=病人总数/行数
                  int cols = (int)(Convert.ToDouble(SystemParameters.WorkArea.Width) / 300); 
                  int rows = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(count) / cols)); 
                  //为grid_Query添加行
                  for (int ri = 0; ri < rows; ri++)
                  {
                      RowDefinition row = new RowDefinition();
                      row.Height = new GridLength(110);
                      grid_Query.RowDefinitions.Add(row);
                  }
                  //为grid_Query添加列
                  for(int ci=0;ci<cols;ci++)
                  {
                      ColumnDefinition col=new ColumnDefinition();
                      col.Width = new GridLength(300);
                      grid_Query.ColumnDefinitions.Add(col);
                  }
      
                  int colNum = 0;
                  int rowNum = 0;
      
                  for (int i = 0; i < count; i++)
                  {
                      PatientElement patient = new PatientElement();
                      patient.block_PatName.Text = pat[i].GivenName.ToString();
                      patient.block_PatId.Text = pat[i].Id.ToString();
                      patient.block_Sex.Text = pat[i].SexId.ToString();
                      patient.block_Age.Text = Convert.ToDateTime(pat[i].Birthday).ToString();
                      
                       if (colNum == cols)
                       {
                           rowNum++;
                           colNum = 0;
                       }
                       patient.SetValue(Grid.ColumnProperty, colNum);
                       patient.SetValue(Grid.RowProperty, rowNum);
                       colNum++;
                       grid_Query.Children.Add(patient);
                  }
              }
    • 病人信息先列后行显示
    • /// <summary>
              /// 左右滑动,先列后行
              /// </summary>
              /// <returns></returns>
              private void AddLeftToRight()
              {
                  List<Patient> pat = dataOP.GetPatInfor();
                  int count = pat.Count;
                 
                  //由于每行要放置病人信息控件个数:即每行最多能放的个数
                  int rows = (int)(Convert.ToDouble(SystemParameters.WorkArea.Height) / 110); //*定义行数
                  int cols = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(count) / rows));//*定义列数
      
                  //为queryGrid添加rows行
                  for (int ri = 0; ri < rows; ri++)
                  {
                      RowDefinition rd = new RowDefinition();
                      rd.Height = new GridLength(110);
                      grid_Query.RowDefinitions.Add(rd);
                  }
                  //为queryGrid添加cols列
                  for (int ci = 0; ci <cols; ci++)
                  {
                      ColumnDefinition cd = new ColumnDefinition();
                      cd.Width = new GridLength(300);
                      grid_Query.ColumnDefinitions.Add(cd);
                  }
      
                  int rowNum = 0;
                  int colNum = 0;
      
                  for (int i = 0;i < count; i++)
                  {
                      PatientElement patient = new PatientElement();
                      patient.block_PatName.Text = pat[i].GivenName.ToString();
                      patient.block_PatId.Text = pat[i].Id.ToString();
                      patient.block_Sex.Text = pat[i].SexId.ToString();
                      patient.block_Age.Text = pat[i].Birthday.ToString();
      
                     if (rowNum == rows)
                     {
                         colNum++;
                         rowNum = 0;
                     }
                     patient.SetValue(Grid.ColumnProperty, colNum);
                     patient.SetValue(Grid.RowProperty, rowNum);
                     rowNum++;
                     grid_Query.Children.Add(patient);
                  }
              }
  • 相关阅读:
    solr中facet、group查询
    Solr开发文档
    Java的Properties类和读取.properties文件
    CentOS RPM安装MySQL-5.6
    C#中的 IList, ICollection ,IEnumerable 和 IEnumerator
    Linq to Xml
    Linq查询
    XDocument和XmlDocument的区别
    关于扩展方法
    今天刚刚开通了园子
  • 原文地址:https://www.cnblogs.com/YunGy/p/3314145.html
Copyright © 2011-2022 走看看