Example #1
0
        public void LoadClipObject(ClipObject clipObject)
        {
            var ms = (MemoryStream) new DataObjectConverter().GetClipObjectData(clipObject);

            byte[] dibBuffer = new byte[ms.Length];
            ms.Read(dibBuffer, 0, dibBuffer.Length);

            BITMAPINFOHEADER infoHeader =
                BinaryStructConverter.FromByteArray <BITMAPINFOHEADER>(dibBuffer);

            int fileHeaderSize = Marshal.SizeOf(typeof(BITMAPFILEHEADER));
            int infoHeaderSize = infoHeader.biSize;
            int fileSize       = fileHeaderSize + infoHeader.biSize + infoHeader.biSizeImage;

            BITMAPFILEHEADER fileHeader = new BITMAPFILEHEADER();

            fileHeader.bfType      = BITMAPFILEHEADER.BM;
            fileHeader.bfSize      = fileSize;
            fileHeader.bfReserved1 = 0;
            fileHeader.bfReserved2 = 0;
            fileHeader.bfOffBits   = fileHeaderSize + infoHeaderSize + infoHeader.biClrUsed * 4;

            byte[] fileHeaderBytes =
                BinaryStructConverter.ToByteArray <BITMAPFILEHEADER>(fileHeader);

            MemoryStream msBitmap = new MemoryStream();

            msBitmap.Write(fileHeaderBytes, 0, fileHeaderSize);
            msBitmap.Write(dibBuffer, 0, dibBuffer.Length);
            msBitmap.Seek(0, SeekOrigin.Begin);

            _image.Source = BitmapFrame.Create(msBitmap);
        }
Example #2
0
        void ClipMessageControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            Clip message = e.NewValue as Clip;

            if (message == null)
            {
                return;
            }

            IClipRenderer renderer   = new DefaultClipRenderer();
            ClipObject    clipObject = message.ClipObjects.FirstOrDefault();

            foreach (var mapping in _renderMappings)
            {
                if (message.ClipObjects.Any(clip => clip.Format == mapping.Key))
                {
                    clipObject = message.ClipObjects.First(clip => clip.Format == mapping.Key);
                    renderer   = mapping.Value();

                    break;
                }
            }

            _clipContainer.Content = renderer;
            renderer.LoadClipObject(clipObject);
        }
Example #3
0
        public void LoadClipObject(ClipObject clipObject)
        {
            string    text = new DataObjectConverter().GetClipObjectData(clipObject).ToString();
            TextRange range;

            using (MemoryStream stream = new MemoryStream(ASCIIEncoding.ASCII.GetBytes(text)))
            {
                range = new TextRange(_text.Document.ContentStart, _text.Document.ContentEnd);
                range.Load(stream, clipObject.Format);
            }
        }
 public void LoadClipObject(ClipObject clipObject)
 {
     DataContext = clipObject;
 }