Browse Source

Merge WinFormsWin32Platform in Win32Platform.

pull/1355/head
Steven Kirk 9 years ago
parent
commit
f559f0b240
  1. 38
      src/Windows/Avalonia.Win32/Win32Platform.cs
  2. 47
      src/Windows/Avalonia.Win32/WinFormsWin32Platform.cs

38
src/Windows/Avalonia.Win32/Win32Platform.cs

@ -16,6 +16,7 @@ using Avalonia.Win32.Interop;
using Avalonia.Controls;
using Avalonia.Rendering;
using Avalonia.Threading;
using System.IO;
#if NETSTANDARD
using Win32Exception = Avalonia.Win32.NetStandard.AvaloniaWin32Exception;
#else
@ -40,7 +41,7 @@ namespace Avalonia
namespace Avalonia.Win32
{
partial class Win32Platform : IPlatformThreadingInterface, IPlatformSettings, IWindowingPlatform, IPlatformIconLoader
class Win32Platform : IPlatformThreadingInterface, IPlatformSettings, IWindowingPlatform, IPlatformIconLoader
{
private static readonly Win32Platform s_instance = new Win32Platform();
private static uint _uiThread;
@ -205,5 +206,40 @@ namespace Avalonia.Win32
{
return new PopupImpl();
}
public IWindowIconImpl LoadIcon(string fileName)
{
using (var stream = File.OpenRead(fileName))
{
return CreateIconImpl(stream);
}
}
public IWindowIconImpl LoadIcon(Stream stream)
{
return CreateIconImpl(stream);
}
public IWindowIconImpl LoadIcon(IBitmapImpl bitmap)
{
using (var memoryStream = new MemoryStream())
{
bitmap.Save(memoryStream);
return new IconImpl(new System.Drawing.Bitmap(memoryStream));
}
}
private static IconImpl CreateIconImpl(Stream stream)
{
try
{
return new IconImpl(new System.Drawing.Icon(stream));
}
catch (ArgumentException)
{
return new IconImpl(new System.Drawing.Bitmap(stream));
}
}
}
}

47
src/Windows/Avalonia.Win32/WinFormsWin32Platform.cs

@ -1,47 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Avalonia.Platform;
namespace Avalonia.Win32
{
partial class Win32Platform
{
public IWindowIconImpl LoadIcon(string fileName)
{
using (var stream = File.OpenRead(fileName))
{
return CreateImpl(stream);
}
}
public IWindowIconImpl LoadIcon(Stream stream)
{
return CreateImpl(stream);
}
public IWindowIconImpl LoadIcon(IBitmapImpl bitmap)
{
using (var memoryStream = new MemoryStream())
{
bitmap.Save(memoryStream);
return new IconImpl(new System.Drawing.Bitmap(memoryStream));
}
}
private static IconImpl CreateImpl(Stream stream)
{
try
{
return new IconImpl(new System.Drawing.Icon(stream));
}
catch (ArgumentException)
{
return new IconImpl(new System.Drawing.Bitmap(stream));
}
}
}
}
Loading…
Cancel
Save