private void lbImage_SelectedIndexChanged(object sender, EventArgs e) { // вывод выбранного изображения ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; if (imageInfo == null) { pictureBox.Image = null; } else { try { pictureBox.Image = imageInfo.Source; pictureBox.SizeMode = imageInfo.ImageSize.Width <= pictureBox.Width && imageInfo.ImageSize.Height <= pictureBox.Height ? PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom; } catch (Exception ex) { pictureBox.Image = null; ScadaUiUtils.ShowError(SchemePhrases.DisplayImageError + ":\n" + ex.Message); } } propGrid.SelectedObject = imageInfo; SetBtnsEnabled(); }
private void propGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { // обновление наименования изображения if (e.ChangedItem.PropertyDescriptor.Name == "Name") { string oldName = (string)e.OldValue; string newName = (string)e.ChangedItem.Value; if (oldName != newName) { // изменение наименования изображения ImageListItem imageInfo = propGrid.SelectedObject as ImageListItem; imageInfo.Image.Name = newName; // обновление словаря изображений схемы images.Remove(oldName); images[newName] = imageInfo.Image; // обновление списка изображений на форме lbImages.SelectedIndexChanged -= lbImage_SelectedIndexChanged; lbImages.BeginUpdate(); lbImages.Items.RemoveAt(lbImages.SelectedIndex); lbImages.SelectedIndex = lbImages.Items.Add(imageInfo); lbImages.EndUpdate(); lbImages.SelectedIndexChanged += lbImage_SelectedIndexChanged; // отслеживание изменений observableItem.OnItemChanged(SchemeChangeTypes.ImageRenamed, imageInfo.Image, oldName); } } }
private void btnOpen_Click(object sender, EventArgs e) { try { // добавление изображения в словарь изображений схемы openFileDialog.FileName = ""; if (openFileDialog.ShowDialog() == DialogResult.OK) { ImageDir = openFileDialog.InitialDirectory = Path.GetDirectoryName(openFileDialog.FileName); if (LoadImage(openFileDialog.FileName, out Image image)) { string name = Path.GetFileName(openFileDialog.FileName); image.Name = images.ContainsKey(name) ? "image" + (images.Count + 1) : name; ImageListItem imageInfo = new ImageListItem(image, ImageNameIsUnique); images.Add(image.Name, image); lbImages.SelectedIndex = lbImages.Items.Add(imageInfo); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void btnSelect_Click(object sender, EventArgs e) { // установка выбранного изображения ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; SelectedImageName = imageInfo == null ? "" : imageInfo.Name; DialogResult = DialogResult.OK; }
/// <summary> /// Сохранить изображение в файле. /// </summary> private void SaveImage(string fileName, ImageListItem imageInfo) { try { using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) { fileStream.Write(imageInfo.Image.Data, 0, imageInfo.DataSize); } } catch (Exception ex) { } }
/// <summary> /// Сохранить изображение в файле /// </summary> private void SaveImage(string fileName, ImageListItem imageInfo) { try { using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) { fileStream.Write(imageInfo.Image.Data, 0, imageInfo.DataSize); } } catch (Exception ex) { ScadaUiUtils.ShowError(SchemePhrases.SaveImageError + ":\n" + ex.Message); } }
private void btnSave_Click(object sender, EventArgs e) { // сохранение изображения в выбранный файл ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; if (imageInfo != null && imageInfo.Image != null) { saveFileDialog.FileName = imageInfo.Name; saveFileDialog.DefaultExt = imageInfo.Format.ToLowerInvariant(); if (saveFileDialog.ShowDialog() == DialogResult.OK) { SaveImage(saveFileDialog.FileName, imageInfo); } } }
/// <summary> /// Makes the appropriate image viewer visible. /// </summary> private void ChooseImageViewer(ImageListItem imageInfo) { if (ctrlSvgViewer != null) { if (imageInfo != null && imageInfo.IsSvg) { pictureBox.Visible = false; ctrlSvgViewer.Visible = true; } else { pictureBox.Visible = true; ctrlSvgViewer.Visible = false; } } }
private void lbImage_SelectedIndexChanged(object sender, EventArgs e) { // вывод выбранного изображения ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; ChooseImageViewer(imageInfo); if (imageInfo == null) { pictureBox.Image = null; } else { try { if (ctrlSvgViewer != null && imageInfo.IsSvg) { // display SVG ctrlSvgViewer.ShowImage(imageInfo.Image.Data); } else { // display other type of image in the picture box pictureBox.Image = imageInfo.Source; pictureBox.SizeMode = imageInfo.ImageSize.Width <= pictureBox.Width && imageInfo.ImageSize.Height <= pictureBox.Height ? PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom; } } catch (Exception ex) { ChooseImageViewer(null); pictureBox.Image = null; ScadaUiUtils.ShowError(SchemePhrases.DisplayImageError + ":\n" + ex.Message); } } propGrid.SelectedObject = imageInfo; SetBtnsEnabled(); }
private void btnDel_Click(object sender, EventArgs e) { // удаление изображения из словаря изображений схемы ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; int selInd = lbImages.SelectedIndex; if (imageInfo != null) { images.Remove(imageInfo.Name); lbImages.Items.RemoveAt(selInd); int itemCnt = lbImages.Items.Count; if (itemCnt > 0) { lbImages.SelectedIndex = selInd < itemCnt ? selInd : itemCnt - 1; } // отслеживание изменений observableItem.OnItemChanged(SchemeChangeTypes.ImageDeleted, imageInfo.Image); } propGrid.Select(); }
private void btnOpen_Click(object sender, EventArgs e) { // добавление изображения в словарь изображений схемы openFileDialog.FileName = ""; if (openFileDialog.ShowDialog() == DialogResult.OK) { Image image; if (LoadImage(openFileDialog.FileName, out image)) { string name = Path.GetFileName(openFileDialog.FileName); image.Name = images.ContainsKey(name) ? "image" + (images.Count + 1) : name; ImageListItem imageInfo = new ImageListItem(image, ImageNameIsUnique); images.Add(image.Name, image); lbImages.SelectedIndex = lbImages.Items.Add(imageInfo); // отслеживание изменений observableItem.OnItemChanged(SchemeChangeTypes.ImageAdded, image); } } }
private void lbImage_SelectedIndexChanged(object sender, EventArgs e) { // вывод выбранного изображения ImageListItem imageInfo = lbImages.SelectedItem as ImageListItem; ChooseImageViewer(imageInfo); if (imageInfo == null) { pictureBox.Image = null; } else { try { // display image in the picture box anyway pictureBox.Image = imageInfo.Source; pictureBox.SizeMode = imageInfo.ImageSize.Width <= pictureBox.Width && imageInfo.ImageSize.Height <= pictureBox.Height ? PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom; // display SVG if (ctrlSvgViewer != null && ctrlSvgViewer.Visible) { ctrlSvgViewer.ShowImage(imageInfo.Image.Data); } } catch (Exception ex) { ChooseImageViewer(null); pictureBox.Image = null; } } propGrid.SelectedObject = imageInfo; SetBtnsEnabled(); }