コード例 #1
0
 public itemElement(ListBox IC, List <object> OLD_IData, transfareData IDataTranfare)
 {
     this.IC            = IC;
     this.OLD_IData     = OLD_IData;
     this.IDataTranfare = IDataTranfare;
     this.Foreground    = new SolidColorBrush(Colors.Black);
     this.Content       = this.IDataTranfare.contentValue;
     solid = this.Foreground;
     this.MouseDoubleClick += ItemElement_MouseDoubleClick;
 }
コード例 #2
0
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            Dispatcher.BeginInvoke((Action)(() =>
            {
                //foreach (FieldInfo type in typeof(DataFormats).GetFields())
                //{
                //    if (Clipboard.GetDataObject().GetDataPresent(type.GetValue("") as string))
                //    {
                //        Console.WriteLine(type.GetValue("") as string);
                //    }
                //}
                try
                {
                    transfareData IDataTranfare = new transfareData();
                    foreach (string _supported in supportedFormats)
                    {
                        if (!Clipboard.GetDataObject().GetDataPresent(_supported))
                        {
                            continue;
                        }

                        if (_supported == DataFormats.Bitmap)
                        {
                            Image image = new Image();
                            System.Windows.Interop.InteropBitmap interopBitmap = (System.Windows.Interop.InteropBitmap)Clipboard.GetImage();
                            image.Source = interopBitmap;
                            IDataTranfare.copyValue = image;
                            BitmapFrame interopBitmap1 = CreateResizedImage(interopBitmap, Math.Min(interopBitmap.PixelWidth, 100), Math.Min(interopBitmap.PixelHeight, 100), 0);
                            Image image2 = new Image();
                            image2.Source = interopBitmap1;
                            IDataTranfare.contentValue = image2;
                            Int32Rect rect = new Int32Rect(0, 0, interopBitmap1.PixelWidth, interopBitmap1.PixelHeight);
                            int stride = interopBitmap1.PixelWidth * (interopBitmap1.Format.BitsPerPixel + 7) / 8;
                            int arrayLength = stride * interopBitmap1.PixelHeight;
                            int[] arr = new int[arrayLength];
                            interopBitmap1.CopyPixels(rect, arr, stride, 0);

                            unchecked
                            {
                                int sum = 0;
                                for (int i = 0; i < arr.Length; i++)
                                {
                                    sum += arr[i];
                                }
                                IDataTranfare.savedValue = sum / arr.Length;
                            }
                        }
                        else if (_supported == DataFormats.Text)
                        {
                            IDataTranfare.copyValue = Clipboard.GetText().Replace("\n", "").Replace("\r", "");
                            IDataTranfare.savedValue = IDataTranfare.copyValue;
                            IDataTranfare.contentValue = IDataTranfare.copyValue;
                        }

                        IDataTranfare.format = _supported;
                        break;
                    }

                    if (OLD_IData.Contains(IDataTranfare.savedValue) || IDataTranfare.format == null)
                    {
                        return;
                    }
                    OLD_IData.Add(IDataTranfare.savedValue);
                    ListBOX.Items.Insert(0, new itemElement(ListBOX, OLD_IData, IDataTranfare));
                }
                catch (Exception err)
                {
                    Console.WriteLine(err);
                }
            }));
        }