diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj
index c902b6dcf4..f70928c398 100644
--- a/samples/XamlTestApplication/XamlTestApplication.csproj
+++ b/samples/XamlTestApplication/XamlTestApplication.csproj
@@ -48,8 +48,8 @@
..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
True
-
- ..\..\packages\Sprache.2.0.0.50\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
+
+ ..\..\packages\Sprache.2.0.0.51\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
True
diff --git a/samples/XamlTestApplication/packages.config b/samples/XamlTestApplication/packages.config
index dc9c5078a2..7e3e5237a5 100644
--- a/samples/XamlTestApplication/packages.config
+++ b/samples/XamlTestApplication/packages.config
@@ -2,7 +2,7 @@
-
+
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
index a90acabed0..cfc8cd2318 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
@@ -65,15 +65,15 @@
- ..\..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll
+ ..\..\..\packages\Serilog.1.5.14\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll
True
..\..\..\packages\Splat.1.6.2\lib\monoandroid\Splat.dll
True
-
- ..\..\..\packages\Sprache.2.0.0.47\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid1+MonoTouch1\Sprache.dll
+
+ ..\..\..\packages\Sprache.2.0.0.51\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
True
diff --git a/src/Android/Avalonia.AndroidTestApplication/packages.config b/src/Android/Avalonia.AndroidTestApplication/packages.config
index 1b636d41d6..470074798d 100644
--- a/src/Android/Avalonia.AndroidTestApplication/packages.config
+++ b/src/Android/Avalonia.AndroidTestApplication/packages.config
@@ -1,8 +1,8 @@
-
+
-
+
diff --git a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs b/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs
index 768aa90dba..63d5e32bd6 100644
--- a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs
+++ b/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs
@@ -77,25 +77,40 @@ namespace Avalonia.Cairo.Media
/// The rect in the output to draw to.
public void DrawImage(IBitmap bitmap, double opacity, Rect sourceRect, Rect destRect)
{
- var impl = bitmap.PlatformImpl as BitmapImpl;
- var size = new Size(impl.PixelWidth, impl.PixelHeight);
- var scale = new Vector(destRect.Width / sourceRect.Width, destRect.Height / sourceRect.Height);
-
- _context.Save();
-
- Gdk.CairoHelper.SetSourcePixbuf (
- _context,
- impl,
- -sourceRect.X + destRect.X,
- -sourceRect.Y + destRect.Y);
- impl.Scale (impl, (int)destRect.X, (int)destRect.Y, (int)destRect.Width, (int)destRect.Height, 0, 0, scale.X, scale.Y, Gdk.InterpType.Bilinear);
-
- _context.PushGroup ();
- _context.Rectangle (destRect.ToCairo ());
- _context.Fill ();
- _context.PopGroupToSource ();
- _context.PaintWithAlpha (opacityOverride);
- _context.Restore();
+ var impl = bitmap.PlatformImpl as BitmapImpl;
+ var size = new Size(impl.PixelWidth, impl.PixelHeight);
+ var scale = new Vector(destRect.Width / sourceRect.Width, destRect.Height / sourceRect.Height);
+
+ _context.Save();
+ _context.Scale(scale.X, scale.Y);
+ destRect /= scale;
+
+ if (opacityOverride < 1.0f) {
+ _context.PushGroup ();
+ Gdk.CairoHelper.SetSourcePixbuf (
+ _context,
+ impl,
+ -sourceRect.X + destRect.X,
+ -sourceRect.Y + destRect.Y);
+
+ _context.Rectangle (destRect.ToCairo ());
+ _context.Fill ();
+ _context.PopGroupToSource ();
+ _context.PaintWithAlpha (opacityOverride);
+ } else {
+ _context.PushGroup ();
+ Gdk.CairoHelper.SetSourcePixbuf (
+ _context,
+ impl,
+ -sourceRect.X + destRect.X,
+ -sourceRect.Y + destRect.Y);
+
+ _context.Rectangle (destRect.ToCairo ());
+ _context.Fill ();
+ _context.PopGroupToSource ();
+ _context.PaintWithAlpha (opacityOverride);
+ }
+ _context.Restore();
}
///
diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
index 45280020c4..2b0d034a5a 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
+++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
@@ -60,6 +60,7 @@
+
@@ -321,8 +322,8 @@
-
- ..\..\..\packages\Sprache.2.0.0.50\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
+
+ ..\..\..\packages\Sprache.2.0.0.51\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
True
diff --git a/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs b/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs
index 4396062e79..fcb5703f83 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs
+++ b/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs
@@ -174,6 +174,7 @@ namespace Avalonia.Markup.Xaml.Context
RegisterTypeConverter(typeof(Uri), new UriTypeConverter());
RegisterTypeConverter(typeof(Cursor), new CursorTypeConverter());
RegisterTypeConverter(typeof(WindowIcon), new IconTypeConverter());
+ RegisterTypeConverter(typeof(FontWeight), new FontWeightConverter());
}
}
}
\ No newline at end of file
diff --git a/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs b/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs
new file mode 100644
index 0000000000..00964ef043
--- /dev/null
+++ b/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs
@@ -0,0 +1,39 @@
+namespace Avalonia.Markup.Xaml.Converters
+{
+ using Avalonia.Media;
+ using OmniXaml.TypeConversion;
+ using System;
+ using System.Globalization;
+
+ public class FontWeightConverter : ITypeConverter
+ {
+ public bool CanConvertFrom(IValueContext context, Type sourceType)
+ {
+ return sourceType == typeof(string);
+ }
+
+ public bool CanConvertTo(IValueContext context, Type destinationType)
+ {
+ return false;
+ }
+
+ public object ConvertFrom(IValueContext context, CultureInfo culture, object value)
+ {
+ FontWeight result;
+
+ if (Enum.TryParse(value as string, out result))
+ {
+ return result;
+ }
+ else
+ {
+ throw new ArgumentException("unable to convert parameter to FontWeight");
+ }
+ }
+
+ public object ConvertTo(IValueContext context, CultureInfo culture, object value, Type destinationType)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/Markup/Avalonia.Markup.Xaml/packages.config b/src/Markup/Avalonia.Markup.Xaml/packages.config
index 12bd37feef..762fe58c1f 100644
--- a/src/Markup/Avalonia.Markup.Xaml/packages.config
+++ b/src/Markup/Avalonia.Markup.Xaml/packages.config
@@ -1,6 +1,6 @@
-
+
diff --git a/tests/Avalonia.Markup.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Markup.UnitTests/Properties/AssemblyInfo.cs
index 4ee486911e..d1567d46be 100644
--- a/tests/Avalonia.Markup.UnitTests/Properties/AssemblyInfo.cs
+++ b/tests/Avalonia.Markup.UnitTests/Properties/AssemblyInfo.cs
@@ -1,6 +1,7 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using Xunit;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
@@ -34,3 +35,6 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+
+// Don't run tests in parallel.
+[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
index 8fb996bad7..0e2e11c300 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
@@ -50,8 +50,8 @@
..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
True
-
- ..\..\packages\Sprache.2.0.0.50\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
+
+ ..\..\packages\Sprache.2.0.0.51\lib\portable-net4+netcore45+win8+wp8+sl5+MonoAndroid+Xamarin.iOS10+MonoTouch\Sprache.dll
True
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/packages.config b/tests/Avalonia.Markup.Xaml.UnitTests/packages.config
index 2ff422adaa..c9010ec3af 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/packages.config
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/packages.config
@@ -2,7 +2,7 @@
-
+