public void setViewImage(clsImage img) { #region 创建视图图像 m_image = img; #endregion }
public ucImage(clsImage ci) { InitializeComponent(); this.ci = ci; updateTb(ci.propImageWidth.ToString(), ci.propImageHeight.ToString(), ci.propMargin.ToString(), ci.propAlignment); DataContext = this; }
public static System.Drawing.Bitmap GetBitmap(clsImage image) { if (image.Color) { return(getColorBitmap(image)); } else { return(getGrayBitmap(image)); } }
public clsCameraView() { #region 默认参数 m_iIndex = 0; m_lptCenter = new Point(0, 0); m_lptMarkOffset = new Point(0, 0); m_image = new clsImage(); imageDoc = null; #endregion }
public object createCompleteImage(string imageSource) { Grid imageGrid = (Grid)createGrid(); imageGrid.Name = "Image"; imageClass = new clsImage(); imageClass["propId"] = Guid.NewGuid(); imageGrid.DataContext = imageClass; imageClass["propImageLocation"] = imageSource; imageGrid.Children.Add((Image)createImage()); object sendimageGridAsObject = (object)imageGrid; return(sendimageGridAsObject); }
public clsAreaView() { #region 初始化,默认值 m_iScale = 1.0M; m_lptTopLeft = new Point(0, 0); m_lptBottomRight = new Point(1920, 1200); m_lptCenter = new Point(960, 600); m_vrcScreenArea = new Rectangle(0, 0, 300, 200); m_vrcPCBImageArea = new Rectangle(0, 0, 300, 200); m_image = new clsImage(); m_image.Color = clsPCB.m_pPCB.m_bColor; imageDoc = null; #endregion }
public object createCompleteImageWithClass(clsImage clsImg) { Grid imageGrid = (Grid)createGrid(); imageGrid.Name = "Image"; imageClass = clsImg; imageGrid.DataContext = imageClass; Image img = (Image)createImage(); imageGrid.Children.Add(img); object sendimageGridAsObject = (object)imageGrid; return(sendimageGridAsObject); }
private void ListViewDesignedItem_Click(object sender, EventArgs e) { object gridChildren = (object)((Grid)((ListViewItem)sender).Content).Children[0]; if (gridChildren.ToString().Contains("TextBlock")) { textBlockClass = new clsTextblock(); textBlockClass = (clsTextblock)((Grid)((ListViewItem)sender).Content).DataContext; ((Grid)((ListViewItem)sender).Content).DataContext = textBlockClass; customWindowForControlProperties.Visibility = Visibility.Visible; Switcher.Switch(new ucTextBlock(textBlockClass)); } if (gridChildren.ToString().Contains("Image")) { imageClass = new clsImage(); imageClass = (clsImage)((Grid)((ListViewItem)sender).Content).DataContext; ((Grid)((ListViewItem)sender).Content).DataContext = imageClass; customWindowForControlProperties.Visibility = Visibility.Visible; Switcher.Switch(new ucImage(imageClass)); } if (gridChildren.ToString().Contains("Button")) { buttonClass = new clsButton(); buttonClass["propButtonAction"] = buttonActionClass; buttonClass = (clsButton)((Grid)((ListViewItem)sender).Content).DataContext; ((Grid)((ListViewItem)sender).Content).DataContext = buttonClass; customWindowForControlProperties.Visibility = Visibility.Visible; Switcher.Switch(new ucButton(buttonClass)); } if (gridChildren.ToString().Contains("TextBox")) { textBoxClass = new clsTextBox(); textBoxClass = (clsTextBox)((Grid)((ListViewItem)sender).Content).DataContext; ((Grid)((ListViewItem)sender).Content).DataContext = textBoxClass; customWindowForControlProperties.Visibility = Visibility.Visible; Switcher.Switch(new ucTextBox(textBoxClass)); } if (gridChildren.ToString().Contains("ComboBox")) { listViewDesign.SelectedIndex = ((ListView)((Grid)((ListViewItem)sender).Content).Parent).Items.IndexOf(((Grid)((ListViewItem)sender).Content)); comboboxClass = new clsComboBox(); comboboxClass = (clsComboBox)((Grid)((ListViewItem)sender).Content).DataContext; ((Grid)((ListViewItem)sender).Content).DataContext = comboboxClass; customWindowForControlProperties.Visibility = Visibility.Visible; Switcher.Switch(new ucComboBox(comboboxClass)); } }
public static System.Drawing.Bitmap getColorBitmap(clsImage image) { //// 申请目标位图的变量,并将其内存区域锁定 try { //// 申请目标位图的变量,并将其内存区域锁定 Bitmap bmp = new Bitmap(image.Width, image.Height, PixelFormat.Format24bppRgb); BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb); //// 获取图像参数 int stride = bmpData.Stride; // 扫描线的宽度 int offset = stride - image.Width * 3; // 显示宽度与扫描线宽度的间隙 IntPtr iptr = bmpData.Scan0; // 获取bmpData的内存起始位置 int scanBytes = stride * image.Height; // 用stride宽度,表示这是内存区域的大小 //// 下面把原始的显示大小字节数组转换为内存中实际存放的字节数组 int posScan = 0, posReal = 0; // 分别设置两个位置指针,指向源数组和目标数组 byte[] pixelValues = new byte[scanBytes]; //为目标数组分配内存 for (int x = 0; x < image.Height; x++) { //// 下面的循环节是模拟行扫描 for (int y = 0; y < image.Width; y++) { pixelValues[posScan++] = image.ImgBuffer[posReal++]; pixelValues[posScan++] = image.ImgBuffer[posReal++]; pixelValues[posScan++] = image.ImgBuffer[posReal++]; } posScan += offset; //行扫描结束,要将目标位置指针移过那段“间隙” } //// 用Marshal的Copy方法,将刚才得到的内存字节数组复制到BitmapData中 System.Runtime.InteropServices.Marshal.Copy(pixelValues, 0, iptr, scanBytes); //// 用Marshal的Copy方法,将刚才得到的内存字节数组复制到BitmapData中 //System.Runtime.InteropServices.Marshal.Copy(image.ImgBuffer, 0, iptr, image.ImgBufferSize); bmp.UnlockBits(bmpData); // 解锁内存区域 //// 算法到此结束,返回结果 return(bmp); } catch (System.Exception ex) { return(null); } }
public void loadDesignedTemplate(clsListViewDesignBackground lv) { XDocument xmlDocument = XDocument.Load(designXmlFilePath); IEnumerable <XElement> designRoot = xmlDocument.Descendants("Design") .Where(mi => mi.Attribute("id").Value == templateId) .Elements(); foreach (XElement control in designRoot) { if (control.Name == "Background") { lv["propBackground"] = (SolidColorBrush)(new BrushConverter().ConvertFrom(control.Value)); } else { string id = control.Attribute("id").Value; string type = control.Attribute("type").Value; switch (type) { case "ComboBox": XElement cboxRoot = xmlDocument.Descendants(type + "es").FirstOrDefault(); XElement cboxDetails = cboxRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); comboboxClass = new clsComboBox(); comboboxClass["propId"] = new Guid(id); comboboxClass["propName"] = cboxDetails.Element("Name").Value; comboboxClass["propInputType"] = cboxDetails.Element("DataType").Value; comboboxClass["propMargin"] = cboxDetails.Element("Margin").Value == "NaN" ? convertToDoubleFromNaN(cboxDetails.Element("Margin").Value) : convertToDouble(cboxDetails.Element("Margin").Value); comboboxClass["propHeight"] = cboxDetails.Element("Height").Value == "NaN" ? convertToDoubleFromNaN(cboxDetails.Element("Height").Value) : convertToDouble(cboxDetails.Element("Height").Value); Grid comboboxGrid = (Grid)controlCreator.createCompleteComboboxWithClass(cboxDetails.Element("ComboboxItem").Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(), comboboxClass); objectClass = new clsObject(); objectClass["controlObject"] = comboboxGrid; objectCollection.addObject(objectClass); break; case "TextBox": XElement tboxRoot = xmlDocument.Descendants(type + "es").FirstOrDefault(); XElement tboxDetails = tboxRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); textBoxClass = new clsTextBox(); textBoxClass["propId"] = new Guid(id); textBoxClass["propName"] = tboxDetails.Element("Name").Value; textBoxClass["propContent"] = tboxDetails.Element("Content").Value; textBoxClass["propHeight"] = tboxDetails.Element("Height").Value == "NaN" ? convertToDoubleFromNaN(tboxDetails.Element("Height").Value) : convertToDouble(tboxDetails.Element("Height").Value); textBoxClass["propMargin"] = tboxDetails.Element("Margin").Value == "NaN" ? convertToDoubleFromNaN(tboxDetails.Element("Margin").Value) : convertToDouble(tboxDetails.Element("Margin").Value); textBoxClass["propWidth"] = tboxDetails.Element("Width").Value == "NaN" ? convertToDoubleFromNaN(tboxDetails.Element("Width").Value) : convertToDouble(tboxDetails.Element("Width").Value); textBoxClass["propAlignment"] = tboxDetails.Element("HorizontalAlignment").Value; textBoxClass["propInputDataType"] = tboxDetails.Element("DataType").Value; Grid textBoxGrid = (Grid)controlCreator.createCompleteTextBoxWithClass(textBoxClass); objectClass = new clsObject(); objectClass["controlObject"] = textBoxGrid; objectCollection.addObject(objectClass); break; case "TextBlock": XElement tblockRoot = xmlDocument.Descendants(type + "s").FirstOrDefault(); XElement tblockDetails = tblockRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); textBlockClass = new clsTextblock(); textBlockClass["propId"] = new Guid(id); textBlockClass["propContent"] = tblockDetails.Element("Text").Value; textBlockClass["propAlignment"] = tblockDetails.Element("HorizontalAlignment").Value; textBlockClass["propFontFamily"] = tblockDetails.Element("FontFamily").Value; textBlockClass["propFontSize"] = double.Parse(tblockDetails.Element("FontSize").Value); textBlockClass["propForeground"] = (SolidColorBrush)(new BrushConverter().ConvertFrom(tblockDetails.Element("Foreground").Value)); textBlockClass["propMargin"] = tblockDetails.Element("Margin").Value == "NaN" ? convertToDoubleFromNaN(tblockDetails.Element("Margin").Value) : convertToDouble(tblockDetails.Element("Margin").Value);; Grid textBlockGrid = (Grid)controlCreator.createCompleteTextblockWithClass(textBlockClass); objectClass = new clsObject(); objectClass["controlObject"] = textBlockGrid; objectCollection.addObject(objectClass); break; case "Button": XElement buttonRoot = xmlDocument.Descendants(type + "s").FirstOrDefault(); XElement buttonDetails = buttonRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); buttonClass = new clsButton(); buttonActionClass = new clsButtonAction(); buttonClass["propId"] = new Guid(id); buttonClass["propContent"] = buttonDetails.Element("Content").Value; buttonClass["propBtnBackground"] = (SolidColorBrush)(new BrushConverter().ConvertFrom(buttonDetails.Element("Background").Value)); buttonClass["propForeground"] = (SolidColorBrush)(new BrushConverter().ConvertFrom(buttonDetails.Element("Foreground").Value)); buttonClass["propAlignment"] = buttonDetails.Element("HorizontalAlignment").Value; buttonClass["propFontFamily"] = buttonDetails.Element("FontFamily").Value; buttonClass["propHeight"] = buttonDetails.Element("Height").Value == "NaN" ? convertToDoubleFromNaN(buttonDetails.Element("Height").Value) : convertToDouble(buttonDetails.Element("Height").Value); buttonClass["propMargin"] = buttonDetails.Element("Margin").Value == "NaN" ? convertToDoubleFromNaN(buttonDetails.Element("Margin").Value) : convertToDouble(buttonDetails.Element("Margin").Value); buttonClass["propWidth"] = buttonDetails.Element("Width").Value == "NaN" ? convertToDoubleFromNaN(buttonDetails.Element("Width").Value) : convertToDouble(buttonDetails.Element("Width").Value);; buttonClass["propFontSize"] = double.Parse(buttonDetails.Element("FontSize").Value); //To do - open action class - assign the value Grid buttonGrid = (Grid)controlCreator.createCompleteButtonWithClass(buttonClass, buttonActionClass); objectClass = new clsObject(); objectClass["controlObject"] = buttonGrid; objectCollection.addObject(objectClass); break; case "DatePicker": XElement datePickerRoot = xmlDocument.Descendants(type + "s").FirstOrDefault(); XElement datePickerDetails = datePickerRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); datePickerClass = new clsDatePicker(); datePickerClass["propId"] = new Guid(id); datePickerClass["propName"] = datePickerDetails.Element("Name").Value; datePickerClass["propInputType"] = datePickerDetails.Element("DataType").Value; datePickerClass["propHeight"] = datePickerDetails.Element("Height").Value == "NaN" ? convertToDoubleFromNaN(datePickerDetails.Element("Height").Value) : convertToDouble(datePickerDetails.Element("Height").Value); datePickerClass["propWidth"] = datePickerDetails.Element("Width").Value == "NaN" ? convertToDoubleFromNaN(datePickerDetails.Element("Width").Value) : convertToDouble(datePickerDetails.Element("Width").Value); Grid datePickerGrid = (Grid)controlCreator.createCompleteDatePickerWithClass(datePickerClass); objectClass = new clsObject(); objectClass["controlObject"] = datePickerGrid; objectCollection.addObject(objectClass); break; case "Image": XElement imageRoot = xmlDocument.Descendants(type + "s").FirstOrDefault(); XElement imageDetails = imageRoot.Descendants(type).Where(mi => mi.Attribute("id").Value == id).FirstOrDefault(); imageClass = new clsImage(); imageClass["propId"] = new Guid(id); imageClass["propMargin"] = imageDetails.Element("Margin").Value == "NaN" ? convertToDoubleFromNaN(imageDetails.Element("Margin").Value) : convertToDouble(imageDetails.Element("Margin").Value); imageClass["propImageHeight"] = imageDetails.Element("Height").Value == "NaN" ? convertToDoubleFromNaN(imageDetails.Element("Height").Value) : convertToDouble(imageDetails.Element("Height").Value); imageClass["propImageWidth"] = imageDetails.Element("Width").Value == "NaN" ? convertToDoubleFromNaN(imageDetails.Element("Width").Value) : convertToDouble(imageDetails.Element("Width").Value); imageClass["propAlignment"] = imageDetails.Element("HorizontalAlignment").Value; imageClass["propImageData"] = imageDetails.Element("ImageData").Value; imageClass["propImageLocation"] = imageDetails.Element("ImageLocation").Value; Grid imageGrid = (Grid)controlCreator.createCompleteImageWithClass(imageClass); objectClass = new clsObject(); objectClass["controlObject"] = imageGrid; objectCollection.addObject(objectClass); break; } } } }
public static void drawImage(this Graphics g, clsImage img, Rectangle dstRect) { g.DrawImage(clsPublic.GetBitmap(img), dstRect); }
public static void drawImage(this Graphics g, clsImage img, int x, int y, int width, int height) { g.DrawImage(clsPublic.GetBitmap(img), new Rectangle(x, y, width, height)); }