string _resourceCurrentType = ".jpg,.png,.gif,.bmp"; //暂时写法 #endregion #region 公共属性 #endregion #region 公共方法 #endregion #region 内部方法 /// <summary> /// 初始化 /// </summary> private void Init() { //panelPreview.Update(); //panelPreview.Refresh(); panelPreview.Paint += new PaintEventHandler(panelPreview_Paint); //Graphics g = panelPreview.CreateGraphics(); resourceFilePaths = new List <MyListItem>(); MyListFolderItem myFolderResouce = new MyListFolderItem(Service.Sdsite.CurrentDocument.Resources, null); myResourceCurrentItem = myFolderResouce; resourceFilePaths.Add(myFolderResouce); listViewFodel.MultiSelect = false; listViewFodel.SmallImageList = new ImageList(); listViewFodel.SmallImageList.ColorDepth = ColorDepth.Depth32Bit; listViewFodel.SmallImageList.ImageSize = new Size(16, 16); listViewFodel.LargeImageList = new ImageList(); listViewFodel.LargeImageList.ColorDepth = ColorDepth.Depth32Bit; listViewFodel.View = View.LargeIcon; //资源文件初始打开为缩略图 myResourceCurrentItem.ListShowView = View.LargeIcon; myResourceCurrentItem.BreviaryMap = true; InitListView(myFolderResouce, listViewFodel, _resourceCurrentType); comboBoxType.SelectedIndex = 0; }
/// <summary> /// 加载项目 /// </summary> /// <param name="initPath"></param> private void InitListView(MyListItem folderEle, ListViewEx listView, string FilterType) { listView.Items.Clear(); // listView.FolderName = folderEle.Element.AbsoluteFilePath; CreateHeader(listView); //列表头 //加载子文件夹 foreach (XmlNode node in folderEle._element.ChildNodes) { if (node is FolderXmlElement && !(node is TmpltFolderXmlElement) && !(node is ResourcesXmlElement)) { FolderXmlElement folder = (FolderXmlElement)node; if (folder.IsDeleted) { continue; } MyListFolderItem mylvi = new MyListFolderItem(folder, folderEle); if (mainTabControl.SelectedIndex != 0) { mylvi.BreviaryMap = false; } string folderPath = folder.AbsoluteFilePath.Substring(0, folder.AbsoluteFilePath.Length - 1); mylvi.Text = Path.GetFileName(folderPath); mylvi.Text = folder.Title; listView.Items.Add(mylvi); } } //加载子文件 InitListViewSubFile(folderEle._element.ChildNodes, listView, FilterType); if (folderEle.BreviaryMap && folderEle.ListShowView == View.LargeIcon) {//缩略图 listView.LargeImageList.Images.Clear(); listView.LargeImageList.ImageSize = new Size(96, 96); foreach (MyListItem lvitem in listView.Items) { // if (lvitem is MyFileItem1) { string fullPath = lvitem.Element.AbsoluteFilePath; lvitem.ImageIndex = listView.LargeImageList.Images.Add(listView.GetThumbNail(fullPath), Color.Transparent); } } } else { listView.LargeImageList.ImageSize = new Size(32, 32); //加载图标 foreach (MyListItem lvitem in listView.Items) { string fullPath = lvitem.Element.AbsoluteFilePath; KeyValuePair <string, Image> keyImg = GetImageAndKey(fullPath, GetSystemIconType.ExtensionSmall); if (!listView.SmallImageList.Images.ContainsKey(keyImg.Key)) { listView.SmallImageList.Images.Add(keyImg.Key, keyImg.Value); } KeyValuePair <string, Image> keyLargeImg = GetImageAndKey(fullPath, GetSystemIconType.ExtensionLarge); if (!listView.LargeImageList.Images.ContainsKey(keyLargeImg.Key)) { listView.LargeImageList.Images.Add(keyLargeImg.Key, keyLargeImg.Value); } lvitem.ImageKey = keyImg.Key; } } if (folderEle is MyListFolderItem) { listView.View = folderEle.ListShowView; } }