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); }
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); }
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; }