Exemplo n.º 1
0
        public void setViewImage(clsImage img)
        {
            #region 创建视图图像

            m_image = img;

            #endregion
        }
Exemplo n.º 2
0
        public ucImage(clsImage ci)
        {
            InitializeComponent();
            this.ci = ci;
            updateTb(ci.propImageWidth.ToString(), ci.propImageHeight.ToString(), ci.propMargin.ToString(), ci.propAlignment);

            DataContext = this;
        }
Exemplo n.º 3
0
 public static System.Drawing.Bitmap GetBitmap(clsImage image)
 {
     if (image.Color)
     {
         return(getColorBitmap(image));
     }
     else
     {
         return(getGrayBitmap(image));
     }
 }
Exemplo n.º 4
0
        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
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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));
            }
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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;
                    }
                }
            }
        }
Exemplo n.º 11
0
 public static void drawImage(this Graphics g, clsImage img, Rectangle dstRect)
 {
     g.DrawImage(clsPublic.GetBitmap(img), dstRect);
 }
Exemplo n.º 12
0
 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));
 }