/// <summary> /// 点击阅览室 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Canvas_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { UC_ReadingRoom room = e.Source as UC_ReadingRoom; if (room != null) { viewModel.CountDown.Pause(); // g_loading.Visibility = System.Windows.Visibility.Visible; viewModel.EnterReadingRoom(room.ViewModel); if (viewModel.ClientObject.EnterOutLogData.FlowControl == ClientOperation.Exit) { WinClosing(); } else if (viewModel.ClientObject.EnterOutLogData.FlowControl == ClientOperation.SelectSeat || viewModel.ClientObject.EnterOutLogData.FlowControl == ClientOperation.WaitSeat) { WinClosing(); } else { WeiCharOperationWindowObject.GetInstance().Window.WinChange((int)(Top)); viewModel.CountDown.Start(); //if (!this.ShowActivated) //{ // this.ShowDialog(); //} } // g_loading.Visibility = System.Windows.Visibility.Hidden; } }
/// <summary> /// 绑定阅览室 /// </summary> private void BindingReadingRoom() { //设置空间最小尺寸 G_bg.Width = viewModel.WindowWidth <= 1080 ? 1080 : viewModel.WindowWidth; G_bg.Height = viewModel.WindowHeight <= 1000 ? 1000 : viewModel.WindowHeight; if (viewModel.WindowWidth <= 1080 || viewModel.WindowHeight <= 1000) { if (viewModel.WindowHeight <= viewModel.WindowWidth) { G_bg.Width = viewModel.WindowWidth * (1000 / viewModel.WindowHeight); } else { G_bg.Height = viewModel.WindowHeight * (1080 / viewModel.WindowWidth); } } if (viewModel.ReadingRoomUsage.Count <= 0) { return; } //处理UC个数 double rcHeight = G_bg.Height - 370; double rcWidth = G_bg.Width - 340; int rowCount = (int)rcHeight / 150; int colCount = (int)rcWidth / 135; double freeHeight = 0; double freeWidth = 0; while (true) { if ((colCount + 1) * 10 > rcWidth - colCount * 135) { colCount--; } else { freeWidth = (rcWidth - colCount * 135) / (colCount + 1); break; } } while (true) { if ((rowCount + 1) * 10 > rcHeight - rowCount * 150) { rowCount--; } else { freeHeight = (rcHeight - rowCount * 150) / (rowCount + 1); break; } } int allCount = rowCount * colCount; int tiCount = (int)rcWidth / 140; foreach (KeyValuePair <string, List <ReadingRoomUC_ViewModel> > area in viewModel.ReadingRoomUsage.TakeWhile(area => TabCont.Items.Count < tiCount)) { if (area.Value.Count <= allCount) { TabItem areaTI = new TabItem(); areaTI.Header = area.Key; areaTI.Style = (Style)FindResource("TabItem_ReadingRoom"); Canvas roomCanvas = new Canvas(); roomCanvas.Width = rcWidth; roomCanvas.Height = rcHeight; roomCanvas.PreviewMouseLeftButtonUp += Canvas_PreviewMouseLeftButtonUp; for (int i = 0; i < area.Value.Count; i++) { UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); uc_Room.Height = 170; uc_Room.Width = 135; Canvas.SetLeft(uc_Room, freeWidth + i % colCount * (135 + freeWidth)); Canvas.SetTop(uc_Room, freeHeight + i / colCount * (150 + freeHeight)); roomCanvas.Children.Add(uc_Room); } areaTI.Content = roomCanvas; TabCont.Items.Add(areaTI); } //超过15个的处理 else { int tapCount = area.Value.Count / allCount; if (area.Value.Count % allCount != 0) { tapCount++; } Char[] chr = "A".ToCharArray(); for (int j = 0; j < tapCount; j++) { chr[0] = Convert.ToChar(chr[0] + j); TabItem areaTI = new TabItem(); areaTI.Header = area.Key + new string(chr); areaTI.Style = (Style)FindResource("TabItem_ReadingRoom"); Canvas roomCanvas = new Canvas(); roomCanvas.Width = rcWidth; roomCanvas.Height = rcHeight; roomCanvas.PreviewMouseLeftButtonUp += Canvas_PreviewMouseLeftButtonUp; for (int i = allCount * j; i < allCount * (j + 1) && i < area.Value.Count; i++) { UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); uc_Room.Height = 150; uc_Room.Width = 135; Canvas.SetLeft(uc_Room, freeWidth + (i - j * allCount) % colCount * (135 + freeWidth)); Canvas.SetTop(uc_Room, freeHeight + (i - j * allCount) / colCount * (150 + freeHeight)); roomCanvas.Children.Add(uc_Room); } areaTI.Content = roomCanvas; TabCont.Items.Add(areaTI); } } } }
/// <summary> /// 绑定阅览室 /// </summary> private void BindingReadingRoomV2() { //设置空间最小尺寸 G_bg111.Width = viewModel.WindowWidth <= 1080 ? 1080 : viewModel.WindowWidth; G_bg111.Height = viewModel.WindowHeight <= 1000 ? 1000 : viewModel.WindowHeight; if (viewModel.WindowWidth <= 1080 || viewModel.WindowHeight <= 1000) { if (viewModel.WindowHeight <= viewModel.WindowWidth) { G_bg111.Width = viewModel.WindowWidth * (1000 / viewModel.WindowHeight); } else { G_bg111.Height = viewModel.WindowHeight * (1080 / viewModel.WindowWidth); } } if (viewModel.ReadingRoomUsage.Count <= 0) { return; } ////处理UC个数 double rcHeight = G_bg111.Height - 370; double rcWidth = G_bg111.Width - 340; int rowCount = (int)rcHeight / 150; int colCount = (int)rcWidth / 135; double freeHeight = 0; double freeWidth = 0; while (true) { if ((colCount + 1) * 10 > rcWidth - colCount * 135) { colCount--; } else { freeWidth = (rcWidth - colCount * 135) / (colCount + 1); break; } } while (true) { if ((rowCount + 1) * 10 > rcHeight - rowCount * 150) { rowCount--; } else { freeHeight = (rcHeight - rowCount * 150) / (rowCount + 1); break; } } int allCount = rowCount * colCount; int tiCount = (int)rcWidth / 140; int tabIndex = 0; foreach (KeyValuePair <string, List <ReadingRoomUC_ViewModel> > area in viewModel.ReadingRoomUsage.TakeWhile(area => TabCont.Items.Count < tiCount)) { if (area.Value.Count <= allCount) { TabItem areaTI = new TabItem(); areaTI.Opacity = 0.8; areaTI.Width = 70; areaTI.Height = 180; if (tabIndex == 0) //第一个 { areaTI.Margin = new Thickness(10, 10, 0, 2); } else if (tabIndex == allCount - 1)//最后一个 { areaTI.Margin = new Thickness(10, 2, 0, 10); } else { areaTI.Margin = new Thickness(10, 2, 0, 5); } areaTI.Header = area.Key; areaTI.Style = (Style)FindResource("TabItem_ReadingRoomV2"); TextBlock t = areaTI.Style.Resources.FindName("txtTitle") as TextBlock; t.Text = areaTI.Header.ToString(); // t.Text=areaTI. //(areaTI.Template.FindName("txtTitle", areaTI) as TextBlock).Text = "aaa"; //(areaTI.Style["txtTitle"] as TextBlock).Text = "123"; //Canvas roomCanvas = new Canvas(); //roomCanvas.Width = rcWidth; //roomCanvas.Height = rcHeight; //roomCanvas.PreviewMouseLeftButtonUp += Canvas_PreviewMouseLeftButtonUp; //for (int i = 0; i < area.Value.Count; i++) //{ // UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); // uc_Room.Height = 170; // uc_Room.Width = 135; // Canvas.SetLeft(uc_Room, freeWidth + i % colCount * (135 + freeWidth)); // Canvas.SetTop(uc_Room, freeHeight + i / colCount * (150 + freeHeight)); // roomCanvas.Children.Add(uc_Room); //} //areaTI.Content = roomCanvas; TabCont.Items.Add(areaTI); } //超过15个的处理 else { int tapCount = area.Value.Count / allCount; if (area.Value.Count % allCount != 0) { tapCount++; } Char[] chr = "A".ToCharArray(); for (int j = 0; j < tapCount; j++) { chr[0] = Convert.ToChar(chr[0] + j); TabItem areaTI = new TabItem(); areaTI.Header = area.Key + new string(chr); areaTI.Style = (Style)FindResource("TabItem_ReadingRoom"); Canvas roomCanvas = new Canvas(); roomCanvas.Width = rcWidth; roomCanvas.Height = rcHeight; roomCanvas.PreviewMouseLeftButtonUp += Canvas_PreviewMouseLeftButtonUp; for (int i = allCount * j; i < allCount * (j + 1) && i < area.Value.Count; i++) { UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); uc_Room.Height = 150; uc_Room.Width = 135; Canvas.SetLeft(uc_Room, freeWidth + (i - j * allCount) % colCount * (135 + freeWidth)); Canvas.SetTop(uc_Room, freeHeight + (i - j * allCount) / colCount * (150 + freeHeight)); roomCanvas.Children.Add(uc_Room); } areaTI.Content = roomCanvas; // TabCont.Items.Add(areaTI); } } tabIndex++; } }
/// <summary> /// 绑定阅览室 /// </summary> private void BindingReadingRoom() { if (viewModel.ReadingRoomUsage.Count > 0) { foreach (KeyValuePair <string, List <SeatClientV2.ViewModel.ReadingRoomUC_ViewModel> > area in viewModel.ReadingRoomUsage) { if (area.Value.Count <= 15) { TabItem areaTI = new TabItem(); areaTI.Header = area.Key; areaTI.Style = (Style)this.FindResource("TabItem_ReadingRoom"); Canvas roomCanvas = new Canvas(); roomCanvas.Width = 730; roomCanvas.Height = 560; roomCanvas.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(Canvas_PreviewMouseLeftButtonUp); for (int i = 0; i < area.Value.Count; i++) { UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); if (area.Value[i].Status == SeatManage.EnumType.ReadingRoomStatus.Close || area.Value[i].Status == SeatManage.EnumType.ReadingRoomStatus.BeforeClose) { uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Close"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Close"); } else { switch (area.Value[i].Usage) { case SeatManage.EnumType.ReadingRoomUsingStatus.Normal: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Normal"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Normal"); break; case SeatManage.EnumType.ReadingRoomUsingStatus.Crowd: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Crowd"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Crowd"); break; case SeatManage.EnumType.ReadingRoomUsingStatus.Full: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Full"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Full"); break; } } uc_Room.Height = 170; uc_Room.Width = 135; Canvas.SetLeft(uc_Room, 5 + i % 5 * 145); Canvas.SetTop(uc_Room, 20 + i / 5 * 190); roomCanvas.Children.Add(uc_Room); } areaTI.Content = roomCanvas; TabCont.Items.Add(areaTI); } //超过15个的处理 else { int tapCount = area.Value.Count / 15; if (area.Value.Count % 15 != 0) { tapCount++; } Char[] chr = "A".ToCharArray(); for (int j = 0; j < tapCount; j++) { chr[0] = Convert.ToChar(chr[0] + j); TabItem areaTI = new TabItem(); areaTI.Header = area.Key + new string(chr); areaTI.Style = (Style)this.FindResource("TabItem_ReadingRoom"); Canvas roomCanvas = new Canvas(); roomCanvas.Width = 730; roomCanvas.Height = 560; roomCanvas.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(Canvas_PreviewMouseLeftButtonUp); for (int i = 15 * j; i < 15 * (j + 1) && i < area.Value.Count; i++) { UC_ReadingRoom uc_Room = new UC_ReadingRoom(area.Value[i]); if (area.Value[i].Status == SeatManage.EnumType.ReadingRoomStatus.Close || area.Value[i].Status == SeatManage.EnumType.ReadingRoomStatus.BeforeClose) { uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Close"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Close"); } else { switch (area.Value[i].Usage) { case SeatManage.EnumType.ReadingRoomUsingStatus.Normal: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Normal"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Normal"); break; case SeatManage.EnumType.ReadingRoomUsingStatus.Crowd: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Crowd"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Crowd"); break; case SeatManage.EnumType.ReadingRoomUsingStatus.Full: uc_Room.nameRount.Style = (Style)this.FindResource("EllipseStyle_Full"); uc_Room.seatcountTxt.Style = (Style)this.FindResource("TextBlockStyle_Full"); break; } } uc_Room.Height = 170; uc_Room.Width = 135; Canvas.SetLeft(uc_Room, 5 + (i - j * 15) % 5 * 145); Canvas.SetTop(uc_Room, 20 + (i - j * 15) / 5 * 190); roomCanvas.Children.Add(uc_Room); } areaTI.Content = roomCanvas; TabCont.Items.Add(areaTI); } } } } }