/// <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++;
            }
        }
Example #4
0
        /// <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);
                        }
                    }
                }
            }
        }