/// <summary> /// 移除面板中的信息 /// </summary> private void RemoveDeviceInfo(IList items) { foreach (var item in items) { DeviveInfo deviveInfo = item as DeviveInfo; PortIsDevice portIsDevice = AppConfigInfos.PortDeviceList.PortevList.Find(p => p.PortName.Equals(deviveInfo.PortCode)); if (portIsDevice != null) { portIsDevice.IsDeviceInfo = false; } // 寻找在面板的位置编号 PortPairInfo portInfo = AppConfigInfos.PortPairInfos.Find(p => p.PortCode.Equals(deviveInfo.PortCode)); if (portInfo == null) { return; } DeviceInfoItem deviceInfoItem = deviceControls.Find(p => p.Index.ToString().Equals(portInfo.Index)); if (deviceInfoItem != null) { deviceInfoItem.ClearData(); } } }
/// <summary> /// 创建UI(以面板2边固定拉升中间空隙排版) /// </summary> private void CreateDeviceUI() { int row = AppConfigInfos.AppStateInfos.FaceplateRow; int column = AppConfigInfos.AppStateInfos.FaceplateColumn; if (lasColumn == column && lastRow == row) { return; } lastRow = row; lasColumn = column; deviceControls.Clear(); canvasMain.Children.Clear(); // 设置卡片的大小和空格 int itemWith = 318; int itemHeight = 181; double spaceHeight = 0; double spaceWidth = 0; canvasMain.Width = column * (itemWith + spaceWidth); canvasMain.Height = row * (itemHeight + spaceHeight); sv.HorizontalScrollBarVisibility = (column <= 4 && canvasMain.Width < my.ActualWidth) ? ScrollBarVisibility.Disabled : ScrollBarVisibility.Auto; sv.VerticalScrollBarVisibility = (row <= 5 && canvasMain.Height < my.ActualHeight) ? ScrollBarVisibility.Disabled : ScrollBarVisibility.Auto; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { int index = i * column + j + 1; DeviceInfoItem deviceInfoItem = new DeviceInfoItem() { Index = index.ToString(), Width = itemWith, Height = itemHeight, IsFirstPort = index.ToString().Equals(AppConfigInfos.PortDeviceList.FirstPort) }; deviceControls.Add(deviceInfoItem); double left = (itemWith + spaceWidth) * j; double top = (itemHeight + spaceHeight) * i; Canvas.SetLeft(deviceInfoItem, left); Canvas.SetTop(deviceInfoItem, top); canvasMain.Children.Add(deviceInfoItem); } } }