#74 expose memory transfer data as-is.

This commit is contained in:
Eugene Wang
2017-02-02 19:48:01 -05:00
parent 7a8b0d0772
commit 0852092e11
8 changed files with 91 additions and 65 deletions

View File

@@ -71,8 +71,7 @@
<Private>True</Private>
</Reference>
<Reference Include="ModernWpf.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c99d0cfbea7491ef, processorArchitecture=MSIL">
<HintPath>..\..\packages\ModernWpf.Core.2.0.0-alpha94\lib\net40-Client\ModernWpf.Core.dll</HintPath>
<Private>True</Private>
<HintPath>..\..\packages\ModernWpf.Core.2.0.0-alpha96\lib\net40-Client\ModernWpf.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />

View File

@@ -274,7 +274,8 @@ namespace Sample.WPF
void _session_TransferReady(object sender, TransferReadyEventArgs e)
{
if (_session.CurrentSource.Capabilities.ICapXferMech.GetCurrent() == XferMech.File)
var mech = _session.CurrentSource.Capabilities.ICapXferMech.GetCurrent();
if (mech == XferMech.File)
{
var formats = _session.CurrentSource.Capabilities.ICapImageFileFormat.GetValues();
var wantFormat = formats.Contains(FileFormat.Tiff) ? FileFormat.Tiff : FileFormat.Bmp;
@@ -286,6 +287,11 @@ namespace Sample.WPF
};
var rc = _session.CurrentSource.DGControl.SetupFileXfer.Set(fileSetup);
}
else if (mech == XferMech.Memory)
{
// ?
}
}
string GetUniqueName(string dir, string name, string ext)
@@ -315,19 +321,28 @@ namespace Sample.WPF
ImageSource GenerateThumbnail(DataTransferredEventArgs e)
{
BitmapSource img = null;
if (e.NativeData != IntPtr.Zero)
switch (e.TransferType)
{
using (var stream = e.GetNativeImageStream())
{
if (stream != null)
case XferMech.Native:
using (var stream = e.GetNativeImageStream())
{
img = stream.ConvertToWpfBitmap(300, 0);
if (stream != null)
{
img = stream.ConvertToWpfBitmap(300, 0);
}
}
}
}
else if (!string.IsNullOrEmpty(e.FileDataPath))
{
img = new BitmapImage(new Uri(e.FileDataPath));
break;
case XferMech.File:
img = new BitmapImage(new Uri(e.FileDataPath));
if (img.CanFreeze)
{
img.Freeze();
}
break;
case XferMech.Memory:
// TODO: build current image from multiple data-xferred event
break;
}
//if (img != null)

View File

@@ -4,6 +4,6 @@
<package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.2" targetFramework="net4-client" />
<package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net4-client" />
<package id="ModernWpf" version="2.0.0-alpha94" targetFramework="net40-client" />
<package id="ModernWpf.Core" version="2.0.0-alpha94" targetFramework="net40-client" />
<package id="ModernWpf.Core" version="2.0.0-alpha96" targetFramework="net40-client" />
<package id="MvvmLightLibs" version="5.3.0.0" targetFramework="net40-client" />
</packages>