Browse Source

Merge branch 'master' into feature/ApplicationOnStartup

pull/2442/head
Steven Kirk 8 years ago
committed by GitHub
parent
commit
5e52d4860b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      .gitmodules
  2. 7
      .ncrunch/Avalonia.Animation.UnitTests.net47.v3.ncrunchproject
  3. 7
      .ncrunch/Avalonia.Animation.UnitTests.netcoreapp2.0.v3.ncrunchproject
  4. 3
      .ncrunch/Avalonia.Animation.v3.ncrunchproject
  5. 7
      .ncrunch/Avalonia.Base.UnitTests.net47.v3.ncrunchproject
  6. 7
      .ncrunch/Avalonia.Base.UnitTests.netcoreapp2.0.v3.ncrunchproject
  7. 3
      .ncrunch/Avalonia.Base.v3.ncrunchproject
  8. 3
      .ncrunch/Avalonia.Benchmarks.v3.ncrunchproject
  9. 5
      .ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject
  10. 7
      .ncrunch/Avalonia.Controls.DataGrid.v3.ncrunchproject
  11. 7
      .ncrunch/Avalonia.Controls.UnitTests.net47.v3.ncrunchproject
  12. 7
      .ncrunch/Avalonia.Controls.UnitTests.netcoreapp2.0.v3.ncrunchproject
  13. 3
      .ncrunch/Avalonia.Controls.v3.ncrunchproject
  14. 7
      .ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject
  15. 7
      .ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject
  16. 3
      .ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject
  17. 7
      .ncrunch/Avalonia.DesktopRuntime.net461.v3.ncrunchproject
  18. 7
      .ncrunch/Avalonia.DesktopRuntime.netcoreapp2.0.v3.ncrunchproject
  19. 3
      .ncrunch/Avalonia.Diagnostics.v3.ncrunchproject
  20. 3
      .ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
  21. 3
      .ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject
  22. 3
      .ncrunch/Avalonia.Direct2D1.v3.ncrunchproject
  23. 6
      .ncrunch/Avalonia.Gtk3.v3.ncrunchproject
  24. 7
      .ncrunch/Avalonia.Input.UnitTests.net47.v3.ncrunchproject
  25. 7
      .ncrunch/Avalonia.Input.UnitTests.netcoreapp2.0.v3.ncrunchproject
  26. 3
      .ncrunch/Avalonia.Input.v3.ncrunchproject
  27. 3
      .ncrunch/Avalonia.Interactivity.UnitTests.v3.ncrunchproject
  28. 3
      .ncrunch/Avalonia.Interactivity.v3.ncrunchproject
  29. 3
      .ncrunch/Avalonia.Layout.UnitTests.v3.ncrunchproject
  30. 3
      .ncrunch/Avalonia.Layout.v3.ncrunchproject
  31. 3
      .ncrunch/Avalonia.LeakTests.v3.ncrunchproject
  32. 3
      .ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject
  33. 3
      .ncrunch/Avalonia.Logging.Serilog.v3.ncrunchproject
  34. 7
      .ncrunch/Avalonia.Markup.UnitTests.net47.v3.ncrunchproject
  35. 7
      .ncrunch/Avalonia.Markup.UnitTests.netcoreapp2.0.v3.ncrunchproject
  36. 7
      .ncrunch/Avalonia.Markup.Xaml.UnitTests.net47.v3.ncrunchproject
  37. 7
      .ncrunch/Avalonia.Markup.Xaml.UnitTests.netcoreapp2.0.v3.ncrunchproject
  38. 3
      .ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject
  39. 3
      .ncrunch/Avalonia.Markup.v3.ncrunchproject
  40. 7
      .ncrunch/Avalonia.OpenGL.v3.ncrunchproject
  41. 7
      .ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject
  42. 3
      .ncrunch/Avalonia.ReactiveUI.v3.ncrunchproject
  43. 3
      .ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
  44. 7
      .ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject
  45. 6
      .ncrunch/Avalonia.Skia.v3.ncrunchproject
  46. 7
      .ncrunch/Avalonia.Styling.UnitTests.net47.v3.ncrunchproject
  47. 7
      .ncrunch/Avalonia.Styling.UnitTests.netcoreapp2.0.v3.ncrunchproject
  48. 3
      .ncrunch/Avalonia.Styling.v3.ncrunchproject
  49. 3
      .ncrunch/Avalonia.Themes.Default.v3.ncrunchproject
  50. 3
      .ncrunch/Avalonia.UnitTests.v3.ncrunchproject
  51. 7
      .ncrunch/Avalonia.Visuals.UnitTests.net47.v3.ncrunchproject
  52. 7
      .ncrunch/Avalonia.Visuals.UnitTests.netcoreapp2.0.v3.ncrunchproject
  53. 3
      .ncrunch/Avalonia.Visuals.v3.ncrunchproject
  54. 3
      .ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject
  55. 3
      .ncrunch/Avalonia.Win32.v3.ncrunchproject
  56. 7
      .ncrunch/Avalonia.X11.v3.ncrunchproject
  57. 8
      .ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject
  58. 8
      .ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject
  59. 3
      .ncrunch/Direct3DInteropSample.v3.ncrunchproject
  60. 7
      .ncrunch/PlatformSanityChecks.v3.ncrunchproject
  61. 4
      build/EmbedXaml.props
  62. 5
      build/SampleApp.props
  63. 6
      dirs.proj
  64. 2
      nukebuild/Numerge
  65. 39
      packages/Avalonia/AvaloniaBuildTasks.targets
  66. 13
      samples/BindingDemo/App.xaml
  67. 1
      samples/BindingDemo/BindingDemo.csproj
  68. 3
      samples/BindingDemo/MainWindow.xaml
  69. 4
      samples/BindingDemo/TestItemView.xaml
  70. 1
      samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
  71. 2
      samples/ControlCatalog/App.xaml
  72. 1
      samples/ControlCatalog/MainView.xaml
  73. 23
      samples/ControlCatalog/MainView.xaml.cs
  74. 12
      samples/ControlCatalog/MainWindow.xaml
  75. 15
      samples/ControlCatalog/MainWindow.xaml.cs
  76. 9
      samples/ControlCatalog/Pages/ButtonPage.xaml.cs
  77. 2
      samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs
  78. 10
      samples/ControlCatalog/Pages/NotificationsPage.xaml
  79. 18
      samples/ControlCatalog/Pages/NotificationsPage.xaml.cs
  80. 4
      samples/ControlCatalog/SideBar.xaml
  81. 44
      samples/ControlCatalog/ViewModels/MainWindowViewModel.cs
  82. 30
      samples/ControlCatalog/ViewModels/NotificationViewModel.cs
  83. 19
      samples/ControlCatalog/Views/CustomNotificationView.xaml
  84. 18
      samples/ControlCatalog/Views/CustomNotificationView.xaml.cs
  85. 4
      samples/RemoteDemo/RemoteDemo.csproj
  86. 15
      samples/RenderDemo/App.xaml
  87. 2
      samples/RenderDemo/MainWindow.xaml
  88. 7
      samples/RenderDemo/Pages/AnimationsPage.xaml
  89. 16
      samples/RenderDemo/Pages/ClippingPage.xaml
  90. 6
      samples/RenderDemo/Pages/DrawingPage.xaml
  91. 1
      samples/RenderDemo/RenderDemo.csproj
  92. 2
      samples/RenderDemo/SideBar.xaml
  93. 13
      samples/VirtualizationDemo/App.xaml
  94. 2
      samples/VirtualizationDemo/MainWindow.xaml
  95. 1
      samples/VirtualizationDemo/VirtualizationDemo.csproj
  96. 29
      src/Avalonia.Animation/Animatable.cs
  97. 5
      src/Avalonia.Animation/Properties/AssemblyInfo.cs
  98. 11
      src/Avalonia.Animation/TransitionInstance.cs
  99. 21
      src/Avalonia.Base/AvaloniaProperty.cs
  100. 5
      src/Avalonia.Base/Data/Core/ExpressionParseException.cs

3
.gitmodules

@ -4,3 +4,6 @@
[submodule "nukebuild/Numerge"] [submodule "nukebuild/Numerge"]
path = nukebuild/Numerge path = nukebuild/Numerge
url = https://github.com/kekekeks/Numerge.git url = https://github.com/kekekeks/Numerge.git
[submodule "src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github"]
path = src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github
url = https://github.com/kekekeks/XamlIl.git

7
.ncrunch/Avalonia.Animation.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Animation.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Animation.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Base.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Base.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Base.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

5
.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject

@ -0,0 +1,5 @@
<ProjectConfiguration>
<Settings>
<IgnoreThisComponentCompletely>True</IgnoreThisComponentCompletely>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Controls.DataGrid.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Controls.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Controls.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Controls.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.DesktopRuntime.net461.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.DesktopRuntime.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Diagnostics.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject

@ -4,6 +4,9 @@
<Value>..\TestFiles\Direct2D1\**.*</Value> <Value>..\TestFiles\Direct2D1\**.*</Value>
</AdditionalFilesToIncludeForProject> </AdditionalFilesToIncludeForProject>
<DefaultTestTimeout>3000</DefaultTestTimeout> <DefaultTestTimeout>3000</DefaultTestTimeout>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Direct2D1.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

6
.ncrunch/Avalonia.Gtk3.v3.ncrunchproject

@ -1,3 +1,7 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings /> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Input.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Input.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Input.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Interactivity.UnitTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Interactivity.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Layout.UnitTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Layout.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.LeakTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Logging.Serilog.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Markup.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Markup.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Markup.Xaml.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Markup.Xaml.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Markup.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.OpenGL.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.ReactiveUI.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject

@ -4,6 +4,9 @@
<Value>..\TestFiles\Skia\**.*</Value> <Value>..\TestFiles\Skia\**.*</Value>
</AdditionalFilesToIncludeForProject> </AdditionalFilesToIncludeForProject>
<DefaultTestTimeout>3000</DefaultTestTimeout> <DefaultTestTimeout>3000</DefaultTestTimeout>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

6
.ncrunch/Avalonia.Skia.v3.ncrunchproject

@ -1,3 +1,7 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings /> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Styling.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Styling.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Styling.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Themes.Default.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.UnitTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.Visuals.UnitTests.net47.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

7
.ncrunch/Avalonia.Visuals.UnitTests.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Visuals.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

3
.ncrunch/Avalonia.Win32.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/Avalonia.X11.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

8
.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject

@ -0,0 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>DerivedFilesIncludedInWorkspace</Value>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

8
.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject

@ -0,0 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>DerivedFilesIncludedInWorkspace</Value>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Direct3DInteropSample.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration> <ProjectConfiguration>
<Settings> <Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully> <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings> </Settings>
</ProjectConfiguration> </ProjectConfiguration>

7
.ncrunch/PlatformSanityChecks.v3.ncrunchproject

@ -0,0 +1,7 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</ProjectConfiguration>

4
build/EmbedXaml.props

@ -4,8 +4,8 @@
<Compile Update="**\*.xaml.cs"> <Compile Update="**\*.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon> <DependentUpon>%(Filename)</DependentUpon>
</Compile> </Compile>
<EmbeddedResource Include="**\*.xaml"> <AvaloniaResource Include="**\*.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</EmbeddedResource> </AvaloniaResource>
</ItemGroup> </ItemGroup>
</Project> </Project>

5
build/SampleApp.props

@ -5,4 +5,9 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)..\src\Avalonia.Desktop\Avalonia.Desktop.csproj" /> <ProjectReference Include="$(MSBuildThisFileDirectory)..\src\Avalonia.Desktop\Avalonia.Desktop.csproj" />
</ItemGroup> </ItemGroup>
<Target Name="GatherReferences" AfterTargets="CoreCompile">
<WriteLinesToFile File="$(TargetPath).refs"
Lines="@(ReferencePathWithRefAssemblies)"
Overwrite="true" />
</Target>
</Project> </Project>

6
dirs.proj

@ -6,12 +6,12 @@
<ProjectReference Include="packages/**/*.*proj" /> <ProjectReference Include="packages/**/*.*proj" />
<ProjectReference Remove="**/*.shproj" /> <ProjectReference Remove="**/*.shproj" />
<ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/PortableXaml/**/*.*proj" /> <ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/PortableXaml/**/*.*proj" />
<ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/XamlIl/**/*.*proj" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="!Exists('$(MSBuildExtensionsPath)\Xamarin\Android')"> <!-- Disabled on CI because of ancient MSBuild project format -->
<ItemGroup>
<ProjectReference Remove="src/Android/**/*.*proj" /> <ProjectReference Remove="src/Android/**/*.*proj" />
<ProjectReference Remove="samples/ControlCatalog.Android/ControlCatalog.Android.csproj" /> <ProjectReference Remove="samples/ControlCatalog.Android/ControlCatalog.Android.csproj" />
</ItemGroup>
<ItemGroup Condition="!Exists('$(MSBuildExtensionsPath)\Xamarin\iOS')">
<ProjectReference Remove="src/iOS/**/*.*proj" /> <ProjectReference Remove="src/iOS/**/*.*proj" />
<ProjectReference Remove="samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj" /> <ProjectReference Remove="samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj" />
</ItemGroup> </ItemGroup>

2
nukebuild/Numerge

@ -1 +1 @@
Subproject commit aef10ae67dc55c95f49b52a505a0be33bfa297a5 Subproject commit 4464343aef5c8ab7a42fcb20a483a6058199f8b8

39
packages/Avalonia/AvaloniaBuildTasks.targets

@ -8,6 +8,10 @@
AssemblyFile="$(AvaloniaBuildTasksLocation)" AssemblyFile="$(AvaloniaBuildTasksLocation)"
/> />
<UsingTask TaskName="CompileAvaloniaXamlTask"
AssemblyFile="$(AvaloniaBuildTasksLocation)"
/>
<Target Name="AddAvaloniaResources" BeforeTargets="ResolveReferences"> <Target Name="AddAvaloniaResources" BeforeTargets="ResolveReferences">
<PropertyGroup> <PropertyGroup>
@ -20,11 +24,15 @@
</ItemGroup> </ItemGroup>
</Target> </Target>
<PropertyGroup>
<BuildAvaloniaResourcesDependsOn>$(BuildAvaloniaResourcesDependsOn);AddAvaloniaResources;ResolveReferences</BuildAvaloniaResourcesDependsOn>
</PropertyGroup>
<Target Name="GenerateAvaloniaResources" <Target Name="GenerateAvaloniaResources"
BeforeTargets="CoreCompile;CoreResGen" BeforeTargets="CoreCompile;CoreResGen"
Inputs="@(AvaloniaResource);$(MSBuildAllProjects)" Inputs="@(AvaloniaResource);$(MSBuildAllProjects)"
Outputs="$(AvaloniaResourcesTemporaryFilePath)" Outputs="$(AvaloniaResourcesTemporaryFilePath)"
DependsOnTargets="$(BuildAvaloniaResourcesDependsOn);AddAvaloniaResources;ResolveReferences"> DependsOnTargets="$(BuildAvaloniaResourcesDependsOn)">
<GenerateAvaloniaResourcesTask <GenerateAvaloniaResourcesTask
Condition="'$(_AvaloniaUseExternalMSBuild)' != 'true'" Condition="'$(_AvaloniaUseExternalMSBuild)' != 'true'"
Output="$(AvaloniaResourcesTemporaryFilePath)" Output="$(AvaloniaResourcesTemporaryFilePath)"
@ -33,9 +41,36 @@
EmbeddedResources="@(EmbeddedResources)"/> EmbeddedResources="@(EmbeddedResources)"/>
<Exec <Exec
Condition="'$(_AvaloniaUseExternalMSBuild)' == 'true'" Condition="'$(_AvaloniaUseExternalMSBuild)' == 'true'"
Command="dotnet msbuild /nodereuse:false $(MSBuildProjectFile) /t:GenerateAvaloniaResources /p:_AvaloniaForceInternalMSBuild=true /p:Configuration=$(Configuration)"/> Command="dotnet msbuild /nodereuse:false $(MSBuildProjectFile) /t:GenerateAvaloniaResources /p:_AvaloniaForceInternalMSBuild=true /p:Configuration=$(Configuration) /p:TargetFramework=$(TargetFramework) /p:BuildProjectReferences=false"/>
</Target> </Target>
<Target
Name="CompileAvaloniaXaml"
AfterTargets="AfterCompile"
Condition="Exists('@(IntermediateAssembly)') And $(DesignTimeBuild) != true And $(EnableAvaloniaXamlCompilation) != false"
>
<PropertyGroup>
<AvaloniaXamlReferencesTemporaryFilePath Condition="'$(AvaloniaXamlReferencesTemporaryFilePath)' == ''">$(IntermediateOutputPath)/Avalonia/references</AvaloniaXamlReferencesTemporaryFilePath>
<AvaloniaXamlOriginalCopyFilePath Condition="'$(AvaloniaXamlOriginalCopyFilePath)' == ''">$(IntermediateOutputPath)/Avalonia/original.dll</AvaloniaXamlOriginalCopyFilePath>
</PropertyGroup>
<WriteLinesToFile
Condition="'$(_AvaloniaForceInternalMSBuild)' != 'true'"
File="$(AvaloniaXamlReferencesTemporaryFilePath)"
Lines="@(ReferencePathWithRefAssemblies)"
Overwrite="true" />
<CompileAvaloniaXamlTask
Condition="'$(_AvaloniaUseExternalMSBuild)' != 'true'"
AssemblyFile="@(IntermediateAssembly)"
ReferencesFilePath="$(AvaloniaXamlReferencesTemporaryFilePath)"
OriginalCopyPath="$(AvaloniaXamlOriginalCopyFilePath)"
ProjectDirectory="$(MSBuildProjectDirectory)"
/>
<Exec
Condition="'$(_AvaloniaUseExternalMSBuild)' == 'true'"
Command="dotnet msbuild /nodereuse:false $(MSBuildProjectFile) /t:CompileAvaloniaXaml /p:_AvaloniaForceInternalMSBuild=true /p:Configuration=$(Configuration) /p:TargetFramework=$(TargetFramework) /p:BuildProjectReferences=false"/>
</Target>
<ItemGroup> <ItemGroup>
<UpToDateCheckInput Include="@(AvaloniaResource)" /> <UpToDateCheckInput Include="@(AvaloniaResource)" />

13
samples/BindingDemo/App.xaml

@ -1,6 +1,9 @@
<Application xmlns="https://github.com/avaloniaui"> <Application
<Application.Styles> xmlns="https://github.com/avaloniaui"
<StyleInclude Source="resm:Avalonia.Themes.Default.DefaultTheme.xaml?assembly=Avalonia.Themes.Default"/> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<StyleInclude Source="resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"/> x:Class="BindingDemo.App">
</Application.Styles> <Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/>
</Application.Styles>
</Application> </Application>

1
samples/BindingDemo/BindingDemo.csproj

@ -14,4 +14,5 @@
<Import Project="..\..\build\ReactiveUI.props" /> <Import Project="..\..\build\ReactiveUI.props" />
<Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" /> <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
<Import Project="..\..\build\ReferenceCoreLibraries.props" /> <Import Project="..\..\build\ReferenceCoreLibraries.props" />
<Import Project="..\..\build\BuildTargets.targets" />
</Project> </Project>

3
samples/BindingDemo/MainWindow.xaml

@ -1,6 +1,7 @@
<Window xmlns="https://github.com/avaloniaui" <Window xmlns="https://github.com/avaloniaui"
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
xmlns:vm="clr-namespace:BindingDemo.ViewModels" x:Class="BindingDemo.MainWindow"
xmlns:vm="clr-namespace:BindingDemo.ViewModels"
xmlns:local="clr-namespace:BindingDemo" xmlns:local="clr-namespace:BindingDemo"
Title="AvaloniaUI Bindings Test" Title="AvaloniaUI Bindings Test"
Width="800" Width="800"

4
samples/BindingDemo/TestItemView.xaml

@ -1,4 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"> <UserControl xmlns="https://github.com/avaloniaui"
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
x:Class="BindingDemo.TestItemView">
<StackPanel> <StackPanel>
<TextBlock Classes="h1" Text="{Binding StringValue}"/> <TextBlock Classes="h1" Text="{Binding StringValue}"/>
<TextBox Text="{Binding Detail}" AcceptsReturn="True"/> <TextBox Text="{Binding Detail}" AcceptsReturn="True"/>

1
samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj

@ -3,6 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
samples/ControlCatalog/App.xaml

@ -4,7 +4,7 @@
<Application.Styles> <Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/> <StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/> <StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/>
<StyleInclude Source="resm:Avalonia.Controls.DataGrid.Themes.Default.xaml?assembly=Avalonia.Controls.DataGrid"/> <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml"/>
<Style Selector="TextBlock.h1"> <Style Selector="TextBlock.h1">
<Setter Property="FontSize" Value="{DynamicResource FontSizeLarge}"/> <Setter Property="FontSize" Value="{DynamicResource FontSizeLarge}"/>
<Setter Property="FontWeight" Value="Medium"/> <Setter Property="FontWeight" Value="Medium"/>

1
samples/ControlCatalog/MainView.xaml

@ -29,6 +29,7 @@
<TabItem Header="LayoutTransformControl"><pages:LayoutTransformControlPage/></TabItem> <TabItem Header="LayoutTransformControl"><pages:LayoutTransformControlPage/></TabItem>
<TabItem Header="ListBox"><pages:ListBoxPage/></TabItem> <TabItem Header="ListBox"><pages:ListBoxPage/></TabItem>
<TabItem Header="Menu"><pages:MenuPage/></TabItem> <TabItem Header="Menu"><pages:MenuPage/></TabItem>
<TabItem Header="Notifications"><pages:NotificationsPage/></TabItem>
<TabItem Header="NumericUpDown"><pages:NumericUpDownPage/></TabItem> <TabItem Header="NumericUpDown"><pages:NumericUpDownPage/></TabItem>
<TabItem Header="ProgressBar"><pages:ProgressBarPage/></TabItem> <TabItem Header="ProgressBar"><pages:ProgressBarPage/></TabItem>
<TabItem Header="RadioButton"><pages:RadioButtonPage/></TabItem> <TabItem Header="RadioButton"><pages:RadioButtonPage/></TabItem>

23
samples/ControlCatalog/MainView.xaml.cs

@ -1,8 +1,11 @@
using System;
using System.Collections; using System.Collections;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Markup.Xaml.Styling; using Avalonia.Markup.Xaml.Styling;
using Avalonia.Markup.Xaml.XamlIl;
using Avalonia.Platform; using Avalonia.Platform;
using ControlCatalog.Pages; using ControlCatalog.Pages;
@ -12,7 +15,7 @@ namespace ControlCatalog
{ {
public MainView() public MainView()
{ {
this.InitializeComponent(); AvaloniaXamlLoader.Load(this);
if (AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetRuntimeInfo().IsDesktop) if (AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetRuntimeInfo().IsDesktop)
{ {
IList tabItems = ((IList)this.FindControl<TabControl>("Sidebar").Items); IList tabItems = ((IList)this.FindControl<TabControl>("Sidebar").Items);
@ -28,8 +31,17 @@ namespace ControlCatalog
}); });
} }
var light = AvaloniaXamlLoader.Parse<StyleInclude>(@"<StyleInclude xmlns='https://github.com/avaloniaui' Source='resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default'/>");
var dark = AvaloniaXamlLoader.Parse<StyleInclude>(@"<StyleInclude xmlns='https://github.com/avaloniaui' Source='resm:Avalonia.Themes.Default.Accents.BaseDark.xaml?assembly=Avalonia.Themes.Default'/>"); var light = new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default")
};
var dark = new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("resm:Avalonia.Themes.Default.Accents.BaseDark.xaml?assembly=Avalonia.Themes.Default")
};
var themes = this.Find<ComboBox>("Themes"); var themes = this.Find<ComboBox>("Themes");
themes.SelectionChanged += (sender, e) => themes.SelectionChanged += (sender, e) =>
{ {
@ -45,10 +57,5 @@ namespace ControlCatalog
}; };
Styles.Add(light); Styles.Add(light);
} }
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
} }
} }

12
samples/ControlCatalog/MainWindow.xaml

@ -1,8 +1,18 @@
<Window xmlns="https://github.com/avaloniaui" MinWidth="500" MinHeight="300" <Window xmlns="https://github.com/avaloniaui" MinWidth="500" MinHeight="300"
xmlns:pages="clr-namespace:ControlCatalog.Pages"
Title="Avalonia Control Gallery" Title="Avalonia Control Gallery"
Icon="/Assets/test_icon.ico" Icon="/Assets/test_icon.ico"
xmlns:local="clr-namespace:ControlCatalog" xmlns:local="clr-namespace:ControlCatalog"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:ControlCatalog.ViewModels"
xmlns:v="clr-namespace:ControlCatalog.Views"
x:Class="ControlCatalog.MainWindow"> x:Class="ControlCatalog.MainWindow">
<local:MainView/> <Window.DataTemplates>
<DataTemplate DataType="vm:NotificationViewModel">
<v:CustomNotificationView />
</DataTemplate>
</Window.DataTemplates>
<Panel>
<local:MainView/>
</Panel>
</Window> </Window>

15
samples/ControlCatalog/MainWindow.xaml.cs

@ -1,18 +1,33 @@
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.Notifications;
using Avalonia.Controls.Primitives;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using ControlCatalog.ViewModels;
using System; using System;
using System.Threading.Tasks;
namespace ControlCatalog namespace ControlCatalog
{ {
public class MainWindow : Window public class MainWindow : Window
{ {
private WindowNotificationManager _notificationArea;
public MainWindow() public MainWindow()
{ {
this.InitializeComponent(); this.InitializeComponent();
this.AttachDevTools(); this.AttachDevTools();
//Renderer.DrawFps = true; //Renderer.DrawFps = true;
//Renderer.DrawDirtyRects = Renderer.DrawFps = true; //Renderer.DrawDirtyRects = Renderer.DrawFps = true;
_notificationArea = new WindowNotificationManager(this)
{
Position = NotificationPosition.TopRight,
MaxItems = 3
};
DataContext = new MainWindowViewModel(_notificationArea);
} }
private void InitializeComponent() private void InitializeComponent()

9
samples/ControlCatalog/Pages/ButtonPage.xaml.cs

@ -5,14 +5,5 @@ namespace ControlCatalog.Pages
{ {
public class ButtonPage : UserControl public class ButtonPage : UserControl
{ {
public ButtonPage()
{
this.InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
} }
} }

2
samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs

@ -18,7 +18,7 @@ namespace ControlCatalog.Pages
AvaloniaXamlLoader.Load(this); AvaloniaXamlLoader.Load(this);
} }
private void OnSpin(object sender, SpinEventArgs e) public void OnSpin(object sender, SpinEventArgs e)
{ {
var spinner = (ButtonSpinner)sender; var spinner = (ButtonSpinner)sender;
var txtBox = (TextBlock)spinner.Content; var txtBox = (TextBlock)spinner.Content;

10
samples/ControlCatalog/Pages/NotificationsPage.xaml

@ -0,0 +1,10 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.NotificationsPage">
<StackPanel Orientation="Vertical" Spacing="4" HorizontalAlignment="Left">
<TextBlock Classes="h1">Notifications</TextBlock>
<Button Content="Show Standard Managed Notification" Command="{Binding ShowManagedNotificationCommand}" />
<Button Content="Show Custom Managed Notification" Command="{Binding ShowCustomManagedNotificationCommand}" />
<Button Content="Show Native Notification" Command="{Binding ShowNativeNotificationCommand}" />
</StackPanel>
</UserControl>

18
samples/ControlCatalog/Pages/NotificationsPage.xaml.cs

@ -0,0 +1,18 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace ControlCatalog.Pages
{
public class NotificationsPage : UserControl
{
public NotificationsPage()
{
this.InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}

4
samples/ControlCatalog/SideBar.xaml

@ -1,6 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui" <Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.SideBar"> >
<Design.PreviewWith> <Design.PreviewWith>
<Border Padding="20"> <Border Padding="20">
<TabControl Classes="sidebar"> <TabControl Classes="sidebar">
@ -56,7 +56,7 @@
<Setter Property="Opacity" Value="0.5"/> <Setter Property="Opacity" Value="0.5"/>
<Setter Property="Transitions"> <Setter Property="Transitions">
<Transitions> <Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.5"/> <DoubleTransition Property="Opacity" Duration="0:0:0.150"/>
</Transitions> </Transitions>
</Setter> </Setter>
</Style> </Style>

44
samples/ControlCatalog/ViewModels/MainWindowViewModel.cs

@ -0,0 +1,44 @@
using System.Reactive;
using Avalonia.Controls.Notifications;
using Avalonia.Diagnostics.ViewModels;
using ReactiveUI;
namespace ControlCatalog.ViewModels
{
class MainWindowViewModel : ViewModelBase
{
private IManagedNotificationManager _notificationManager;
public MainWindowViewModel(IManagedNotificationManager notificationManager)
{
_notificationManager = notificationManager;
ShowCustomManagedNotificationCommand = ReactiveCommand.Create(() =>
{
NotificationManager.Show(new NotificationViewModel(NotificationManager) { Title = "Hey There!", Message = "Did you know that Avalonia now supports Custom In-Window Notifications?" });
});
ShowManagedNotificationCommand = ReactiveCommand.Create(() =>
{
NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Welcome", "Avalonia now supports Notifications.", NotificationType.Information));
});
ShowNativeNotificationCommand = ReactiveCommand.Create(() =>
{
NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Error", "Native Notifications are not quite ready. Coming soon.", NotificationType.Error));
});
}
public IManagedNotificationManager NotificationManager
{
get { return _notificationManager; }
set { this.RaiseAndSetIfChanged(ref _notificationManager, value); }
}
public ReactiveCommand<Unit, Unit> ShowCustomManagedNotificationCommand { get; }
public ReactiveCommand<Unit, Unit> ShowManagedNotificationCommand { get; }
public ReactiveCommand<Unit, Unit> ShowNativeNotificationCommand { get; }
}
}

30
samples/ControlCatalog/ViewModels/NotificationViewModel.cs

@ -0,0 +1,30 @@
using System.Reactive;
using Avalonia.Controls.Notifications;
using ReactiveUI;
namespace ControlCatalog.ViewModels
{
public class NotificationViewModel
{
public NotificationViewModel(INotificationManager manager)
{
YesCommand = ReactiveCommand.Create(() =>
{
manager.Show(new Avalonia.Controls.Notifications.Notification("Avalonia Notifications", "Start adding notifications to your app today."));
});
NoCommand = ReactiveCommand.Create(() =>
{
manager.Show(new Avalonia.Controls.Notifications.Notification("Avalonia Notifications", "Start adding notifications to your app today. To find out more visit..."));
});
}
public string Title { get; set; }
public string Message { get; set; }
public ReactiveCommand<Unit, Unit> YesCommand { get; }
public ReactiveCommand<Unit, Unit> NoCommand { get; }
}
}

19
samples/ControlCatalog/Views/CustomNotificationView.xaml

@ -0,0 +1,19 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Views.CustomNotificationView">
<Border Padding="12" MinHeight="20" Background="DodgerBlue">
<Grid ColumnDefinitions="Auto,*">
<Panel Margin="0,0,12,0" Width="25" Height="25" VerticalAlignment="Top">
<TextBlock Text="&#xE115;" FontFamily="Segoe UI Symbol" FontSize="20" TextAlignment="Center" VerticalAlignment="Center"/>
</Panel>
<DockPanel Grid.Column="1">
<TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontWeight="Medium" />
<StackPanel Spacing="20" DockPanel.Dock="Bottom" Margin="0,8,0,0" Orientation="Horizontal">
<Button Content="No" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{Binding NoCommand}" Margin="0,0,8,0" />
<Button Content="Yes" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{Binding YesCommand}" />
</StackPanel>
<TextBlock Text="{Binding Message}" TextWrapping="Wrap" Opacity=".8" Margin="0,8,0,0"/>
</DockPanel>
</Grid>
</Border>
</UserControl>

18
samples/ControlCatalog/Views/CustomNotificationView.xaml.cs

@ -0,0 +1,18 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace ControlCatalog.Views
{
public class CustomNotificationView : UserControl
{
public CustomNotificationView()
{
this.InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}

4
samples/RemoteDemo/RemoteDemo.csproj

@ -1,14 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" /> <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
</ItemGroup> </ItemGroup>
<Import Project="..\..\build\SampleApp.props" /> <Import Project="..\..\build\SampleApp.props" />
<Import Project="..\..\build\ReferenceCoreLibraries.props" /> <Import Project="..\..\build\ReferenceCoreLibraries.props" />
<Import Project="..\..\build\BuildTargets.targets" />
</Project> </Project>

15
samples/RenderDemo/App.xaml

@ -1,7 +1,10 @@
<Application xmlns="https://github.com/avaloniaui"> <Application
<Application.Styles> xmlns="https://github.com/avaloniaui"
<StyleInclude Source="resm:Avalonia.Themes.Default.DefaultTheme.xaml?assembly=Avalonia.Themes.Default"/> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<StyleInclude Source="resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"/> x:Class="RenderDemo.App">
<StyleInclude Source="resm:RenderDemo.SideBar.xaml"/> <Application.Styles>
</Application.Styles> <StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/>
<StyleInclude Source="avares://RenderDemo/SideBar.xaml"/>
</Application.Styles>
</Application> </Application>

2
samples/RenderDemo/MainWindow.xaml

@ -1,4 +1,6 @@
<Window xmlns="https://github.com/avaloniaui" <Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="RenderDemo.MainWindow"
Title="AvaloniaUI Rendering Test" Title="AvaloniaUI Rendering Test"
xmlns:pages="clr-namespace:RenderDemo.Pages" xmlns:pages="clr-namespace:RenderDemo.Pages"
Width="800" Width="800"

7
samples/RenderDemo/Pages/AnimationsPage.xaml

@ -1,6 +1,7 @@
<UserControl <UserControl
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="RenderDemo.Pages.AnimationsPage">
<UserControl.Styles> <UserControl.Styles>
<Styles> <Styles>
<Styles.Resources> <Styles.Resources>

16
samples/RenderDemo/Pages/ClippingPage.xaml

@ -1,9 +1,11 @@
<UserControl <UserControl
xmlns="https://github.com/avaloniaui"> xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="RenderDemo.Pages.ClippingPage">
<Grid ColumnDefinitions="Auto" RowDefinitions="Auto,Auto"> <Grid ColumnDefinitions="Auto" RowDefinitions="Auto,Auto">
<Grid.Styles> <Grid.Styles>
<Styles> <Styles>
<Style Selector="Border#clipped :pointerover"> <Style Selector="Border#clipped:pointerover">
<Setter Property="Border.Background" Value="Crimson"/> <Setter Property="Border.Background" Value="Crimson"/>
</Style> </Style>
<Style Selector="Border#clipChild"> <Style Selector="Border#clipChild">
@ -17,10 +19,10 @@ xmlns="https://github.com/avaloniaui">
</Style> </Style>
</Styles> </Styles>
</Grid.Styles> </Grid.Styles>
<Border Name="clipped" <Border Name="clipped"
Background="Yellow" Background="Yellow"
Width="100" Width="100"
Height="100" Height="100"
Clip="M 58.625 0.07421875 Clip="M 58.625 0.07421875
C 50.305778 0.26687364 42.411858 7.0346526 41.806641 15.595703 C 50.305778 0.26687364 42.411858 7.0346526 41.806641 15.595703
C 42.446442 22.063923 39.707425 13.710754 36.982422 12.683594 C 42.446442 22.063923 39.707425 13.710754 36.982422 12.683594

6
samples/RenderDemo/Pages/DrawingPage.xaml

@ -1,5 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui" <UserControl
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="RenderDemo.Pages.DrawingPage">
<UserControl.Styles> <UserControl.Styles>
<Style> <Style>
<Style.Resources> <Style.Resources>

1
samples/RenderDemo/RenderDemo.csproj

@ -14,4 +14,5 @@
<Import Project="..\..\build\ReactiveUI.props" /> <Import Project="..\..\build\ReactiveUI.props" />
<Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" /> <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
<Import Project="..\..\build\ReferenceCoreLibraries.props" /> <Import Project="..\..\build\ReferenceCoreLibraries.props" />
<Import Project="..\..\build\BuildTargets.targets" />
</Project> </Project>

2
samples/RenderDemo/SideBar.xaml

@ -47,7 +47,7 @@
<Setter Property="Opacity" Value="0.5"/> <Setter Property="Opacity" Value="0.5"/>
<Setter Property="Transitions"> <Setter Property="Transitions">
<Transitions> <Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.5"/> <DoubleTransition Property="Opacity" Duration="0:0:0.150"/>
</Transitions> </Transitions>
</Setter> </Setter>
</Style> </Style>

13
samples/VirtualizationDemo/App.xaml

@ -1,6 +1,9 @@
<Application xmlns="https://github.com/avaloniaui"> <Application
<Application.Styles> xmlns="https://github.com/avaloniaui"
<StyleInclude Source="resm:Avalonia.Themes.Default.DefaultTheme.xaml?assembly=Avalonia.Themes.Default"/> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<StyleInclude Source="resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"/> x:Class="VirtualizationDemo.App">
</Application.Styles> <Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/>
</Application.Styles>
</Application> </Application>

2
samples/VirtualizationDemo/MainWindow.xaml

@ -1,4 +1,6 @@
<Window xmlns="https://github.com/avaloniaui" <Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="VirtualizationDemo.MainWindow"
Title="AvaloniaUI Virtualization Test" Title="AvaloniaUI Virtualization Test"
Width="800" Width="800"
Height="600"> Height="600">

1
samples/VirtualizationDemo/VirtualizationDemo.csproj

@ -14,4 +14,5 @@
<Import Project="..\..\build\ReactiveUI.props" /> <Import Project="..\..\build\ReactiveUI.props" />
<Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" /> <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
<Import Project="..\..\build\ReferenceCoreLibraries.props" /> <Import Project="..\..\build\ReferenceCoreLibraries.props" />
<Import Project="..\..\build\BuildTargets.targets" />
</Project> </Project>

29
src/Avalonia.Animation/Animatable.cs

@ -7,7 +7,7 @@ using System.Linq;
using System.Reactive.Linq; using System.Reactive.Linq;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Data; using Avalonia.Data;
using Avalonia.Animation.Animators; using Avalonia.Animation.Animators;
namespace Avalonia.Animation namespace Avalonia.Animation
{ {
@ -36,13 +36,27 @@ namespace Avalonia.Animation
private Transitions _transitions; private Transitions _transitions;
private Dictionary<AvaloniaProperty, IDisposable> _previousTransitions;
/// <summary> /// <summary>
/// Gets or sets the property transitions for the control. /// Gets or sets the property transitions for the control.
/// </summary> /// </summary>
public Transitions Transitions public Transitions Transitions
{ {
get { return _transitions ?? (_transitions = new Transitions()); } get
set { SetAndRaise(TransitionsProperty, ref _transitions, value); } {
if (_transitions == null)
_transitions = new Transitions();
if (_previousTransitions == null)
_previousTransitions = new Dictionary<AvaloniaProperty, IDisposable>();
return _transitions;
}
set
{
SetAndRaise(TransitionsProperty, ref _transitions, value);
}
} }
/// <summary> /// <summary>
@ -52,13 +66,18 @@ namespace Avalonia.Animation
/// <param name="e">The event args.</param> /// <param name="e">The event args.</param>
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e)
{ {
if (e.Priority != BindingPriority.Animation && Transitions != null) if (e.Priority != BindingPriority.Animation && Transitions != null && _previousTransitions != null)
{ {
var match = Transitions.FirstOrDefault(x => x.Property == e.Property); var match = Transitions.FirstOrDefault(x => x.Property == e.Property);
if (match != null) if (match != null)
{ {
match.Apply(this, Clock ?? Avalonia.Animation.Clock.GlobalClock, e.OldValue, e.NewValue); if (_previousTransitions.TryGetValue(e.Property, out var dispose))
dispose.Dispose();
var instance = match.Apply(this, Clock ?? Avalonia.Animation.Clock.GlobalClock, e.OldValue, e.NewValue);
_previousTransitions[e.Property] = instance;
} }
} }
} }

5
src/Avalonia.Animation/Properties/AssemblyInfo.cs

@ -3,7 +3,10 @@
using Avalonia.Metadata; using Avalonia.Metadata;
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Animators")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Animators")]
[assembly: InternalsVisibleTo("Avalonia.LeakTests")]

11
src/Avalonia.Animation/TransitionInstance.cs

@ -30,13 +30,16 @@ namespace Avalonia.Animation
{ {
var interpVal = (double)t.Ticks / _duration.Ticks; var interpVal = (double)t.Ticks / _duration.Ticks;
if (interpVal > 1d || interpVal < 0d) // Clamp interpolation value.
if (interpVal >= 1d | interpVal < 0d)
{ {
PublishNext(1d);
PublishCompleted(); PublishCompleted();
return;
} }
else
PublishNext(interpVal); {
PublishNext(interpVal);
}
} }
protected override void Unsubscribed() protected override void Unsubscribed()

21
src/Avalonia.Base/AvaloniaProperty.cs

@ -19,7 +19,7 @@ namespace Avalonia
/// <summary> /// <summary>
/// Represents an unset property value. /// Represents an unset property value.
/// </summary> /// </summary>
public static readonly object UnsetValue = new Unset(); public static readonly object UnsetValue = new UnsetValueType();
private static int s_nextId; private static int s_nextId;
private readonly Subject<AvaloniaPropertyChangedEventArgs> _initialized; private readonly Subject<AvaloniaPropertyChangedEventArgs> _initialized;
@ -546,16 +546,17 @@ namespace Avalonia
} }
} }
}
/// <summary>
/// Class representing the <see cref="AvaloniaProperty.UnsetValue"/>.
/// </summary>
public class UnsetValueType
{
/// <summary> /// <summary>
/// Class representing the <see cref="UnsetValue"/>. /// Returns the string representation of the <see cref="AvaloniaProperty.UnsetValue"/>.
/// </summary> /// </summary>
private class Unset /// <returns>The string "(unset)".</returns>
{ public override string ToString() => "(unset)";
/// <summary>
/// Returns the string representation of the <see cref="UnsetValue"/>.
/// </summary>
/// <returns>The string "(unset)".</returns>
public override string ToString() => "(unset)";
}
} }
} }

5
src/Avalonia.Base/Data/Core/ExpressionParseException.cs

@ -9,7 +9,10 @@ namespace Avalonia.Data.Core
/// Exception thrown when <see cref="ExpressionObserver"/> could not parse the provided /// Exception thrown when <see cref="ExpressionObserver"/> could not parse the provided
/// expression string. /// expression string.
/// </summary> /// </summary>
public class ExpressionParseException : Exception #if !BUILDTASK
public
#endif
class ExpressionParseException : Exception
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ExpressionParseException"/> class. /// Initializes a new instance of the <see cref="ExpressionParseException"/> class.

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save