-
新建显示病人信息控件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); } }