Browse Source

Merge branch 'master' into fixes/select-all-unselecting-items

pull/2402/head
Steven Kirk 7 years ago
committed by GitHub
parent
commit
f8c4d7aa6a
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
      azure-pipelines.yml
  62. 4
      build/EmbedXaml.props
  63. 5
      build/SampleApp.props
  64. 6
      build/SharedVersion.props
  65. 6
      dirs.proj
  66. 9
      native/Avalonia.Native/src/OSX/SystemDialogs.mm
  67. 8
      nukebuild/Build.cs
  68. 39
      packages/Avalonia/AvaloniaBuildTasks.targets
  69. 13
      samples/BindingDemo/App.xaml
  70. 1
      samples/BindingDemo/App.xaml.cs
  71. 1
      samples/BindingDemo/BindingDemo.csproj
  72. 3
      samples/BindingDemo/MainWindow.xaml
  73. 4
      samples/BindingDemo/TestItemView.xaml
  74. 4
      samples/ControlCatalog.Android/ControlCatalog.Android.csproj
  75. 4
      samples/ControlCatalog.Desktop/Program.cs
  76. 1
      samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
  77. 4
      samples/ControlCatalog.NetCore/Program.cs
  78. 2
      samples/ControlCatalog/App.xaml
  79. 1
      samples/ControlCatalog/MainView.xaml
  80. 23
      samples/ControlCatalog/MainView.xaml.cs
  81. 12
      samples/ControlCatalog/MainWindow.xaml
  82. 15
      samples/ControlCatalog/MainWindow.xaml.cs
  83. 9
      samples/ControlCatalog/Pages/ButtonPage.xaml.cs
  84. 2
      samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs
  85. 10
      samples/ControlCatalog/Pages/NotificationsPage.xaml
  86. 18
      samples/ControlCatalog/Pages/NotificationsPage.xaml.cs
  87. 8
      samples/ControlCatalog/SideBar.xaml
  88. 44
      samples/ControlCatalog/ViewModels/MainWindowViewModel.cs
  89. 30
      samples/ControlCatalog/ViewModels/NotificationViewModel.cs
  90. 19
      samples/ControlCatalog/Views/CustomNotificationView.xaml
  91. 18
      samples/ControlCatalog/Views/CustomNotificationView.xaml.cs
  92. 4
      samples/RemoteDemo/RemoteDemo.csproj
  93. 15
      samples/RenderDemo/App.xaml
  94. 1
      samples/RenderDemo/App.xaml.cs
  95. 5
      samples/RenderDemo/MainWindow.xaml
  96. 7
      samples/RenderDemo/Pages/AnimationsPage.xaml
  97. 16
      samples/RenderDemo/Pages/ClippingPage.xaml
  98. 119
      samples/RenderDemo/Pages/CustomSkiaPage.cs
  99. 6
      samples/RenderDemo/Pages/DrawingPage.xaml
  100. 1
      samples/RenderDemo/RenderDemo.csproj

3
.gitmodules

@ -4,3 +4,6 @@
[submodule "nukebuild/Numerge"]
path = nukebuild/Numerge
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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

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

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

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

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

3
.ncrunch/Avalonia.Direct2D1.v3.ncrunchproject

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

6
.ncrunch/Avalonia.Gtk3.v3.ncrunchproject

@ -1,3 +1,7 @@
<ProjectConfiguration>
<Settings />
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

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

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

3
.ncrunch/Avalonia.Interactivity.v3.ncrunchproject

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

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

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

3
.ncrunch/Avalonia.Layout.v3.ncrunchproject

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

3
.ncrunch/Avalonia.LeakTests.v3.ncrunchproject

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

3
.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject

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

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

@ -1,5 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

3
.ncrunch/Avalonia.Markup.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

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

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

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

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

3
.ncrunch/Avalonia.UnitTests.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

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

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

3
.ncrunch/Avalonia.Win32.v3.ncrunchproject

@ -1,5 +1,8 @@
<ProjectConfiguration>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</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>
<Settings>
<HiddenComponentWarnings>
<Value>MissingOrIgnoredProjectReference</Value>
</HiddenComponentWarnings>
<PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
</Settings>
</ProjectConfiguration>

7
.ncrunch/PlatformSanityChecks.v3.ncrunchproject

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

4
azure-pipelines.yml

@ -32,7 +32,7 @@ jobs:
- job: macOS
pool:
vmImage: 'xcode9-macos10.13'
vmImage: 'macOS-10.14'
steps:
- task: DotNetCoreInstaller@0
inputs:
@ -49,7 +49,7 @@ jobs:
inputs:
actions: 'build'
scheme: ''
sdk: 'macosx10.13'
sdk: 'macosx10.14'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: 'default' # Options: 8, 9, default, specifyPath

4
build/EmbedXaml.props

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

5
build/SampleApp.props

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

6
build/SharedVersion.props

@ -2,8 +2,8 @@
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Product>Avalonia</Product>
<Version>0.7.1</Version>
<Copyright>Copyright 2018 &#169; The AvaloniaUI Project</Copyright>
<Version>0.8.1</Version>
<Copyright>Copyright 2019 &#169; The AvaloniaUI Project</Copyright>
<PackageLicenseUrl>https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/AvaloniaUI/Avalonia/</PackageProjectUrl>
<RepositoryUrl>https://github.com/AvaloniaUI/Avalonia/</RepositoryUrl>
@ -11,4 +11,4 @@
<NoWarn>CS1591</NoWarn>
<LangVersion>latest</LangVersion>
</PropertyGroup>
</Project>
</Project>

6
dirs.proj

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

9
native/Avalonia.Native/src/OSX/SystemDialogs.mm

@ -45,8 +45,7 @@ public:
{
auto url = [urls objectAtIndex:i];
auto string = [url absoluteString];
string = [string substringFromIndex:7];
auto string = [url path];
strings[i] = (void*)[string UTF8String];
}
@ -137,8 +136,7 @@ public:
{
auto url = [urls objectAtIndex:i];
auto string = [url absoluteString];
string = [string substringFromIndex:7];
auto string = [url path];
strings[i] = (void*)[string UTF8String];
}
@ -220,8 +218,7 @@ public:
auto url = [panel URL];
auto string = [url absoluteString];
string = [string substringFromIndex:7];
auto string = [url path];
strings[0] = (void*)[string UTF8String];
events->OnCompleted(1, &strings[0]);

8
nukebuild/Build.cs

@ -122,6 +122,14 @@ partial class Build : NukeBuild
foreach(var fw in frameworks)
{
if (fw.StartsWith("net4")
&& RuntimeInformation.IsOSPlatform(OSPlatform.Linux)
&& Environment.GetEnvironmentVariable("FORCE_LINUX_TESTS") != "1")
{
Information($"Skipping {fw} tests on Linux - https://github.com/mono/mono/issues/13969");
continue;
}
Information("Running for " + fw);
DotNetTest(c =>
{

39
packages/Avalonia/AvaloniaBuildTasks.targets

@ -8,6 +8,10 @@
AssemblyFile="$(AvaloniaBuildTasksLocation)"
/>
<UsingTask TaskName="CompileAvaloniaXamlTask"
AssemblyFile="$(AvaloniaBuildTasksLocation)"
/>
<Target Name="AddAvaloniaResources" BeforeTargets="ResolveReferences">
<PropertyGroup>
@ -20,11 +24,15 @@
</ItemGroup>
</Target>
<PropertyGroup>
<BuildAvaloniaResourcesDependsOn>$(BuildAvaloniaResourcesDependsOn);AddAvaloniaResources;ResolveReferences</BuildAvaloniaResourcesDependsOn>
</PropertyGroup>
<Target Name="GenerateAvaloniaResources"
BeforeTargets="CoreCompile;CoreResGen"
Inputs="@(AvaloniaResource);$(MSBuildAllProjects)"
Outputs="$(AvaloniaResourcesTemporaryFilePath)"
DependsOnTargets="$(BuildAvaloniaResourcesDependsOn);AddAvaloniaResources;ResolveReferences">
DependsOnTargets="$(BuildAvaloniaResourcesDependsOn)">
<GenerateAvaloniaResourcesTask
Condition="'$(_AvaloniaUseExternalMSBuild)' != 'true'"
Output="$(AvaloniaResourcesTemporaryFilePath)"
@ -33,9 +41,36 @@
EmbeddedResources="@(EmbeddedResources)"/>
<Exec
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
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>
<UpToDateCheckInput Include="@(AvaloniaResource)" />

13
samples/BindingDemo/App.xaml

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

1
samples/BindingDemo/App.xaml.cs

@ -3,6 +3,7 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Logging.Serilog;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Serilog;
namespace BindingDemo

1
samples/BindingDemo/BindingDemo.csproj

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

3
samples/BindingDemo/MainWindow.xaml

@ -1,6 +1,7 @@
<Window xmlns="https://github.com/avaloniaui"
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"
Title="AvaloniaUI Bindings Test"
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>
<TextBlock Classes="h1" Text="{Binding StringValue}"/>
<TextBox Text="{Binding Detail}" AcceptsReturn="True"/>

4
samples/ControlCatalog.Android/ControlCatalog.Android.csproj

@ -32,7 +32,7 @@
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
<BundleAssemblies>False</BundleAssemblies>
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86</AndroidSupportedAbis>
<AndroidSupportedAbis>armeabi-v7a;x86</AndroidSupportedAbis>
<Debugger>Xamarin</Debugger>
<AndroidEnableMultiDex>False</AndroidEnableMultiDex>
<AotAssemblies>False</AotAssemblies>
@ -51,7 +51,7 @@
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
<BundleAssemblies>False</BundleAssemblies>
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
<AndroidSupportedAbis>armeabi-v7a,x86</AndroidSupportedAbis>
<Debugger>Xamarin</Debugger>
<AotAssemblies>False</AotAssemblies>
<EnableLLVM>False</EnableLLVM>

4
samples/ControlCatalog.Desktop/Program.cs

@ -4,6 +4,7 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Logging.Serilog;
using Avalonia.Platform;
using Avalonia.ReactiveUI;
using Serilog;
namespace ControlCatalog
@ -25,8 +26,7 @@ namespace ControlCatalog
=> AppBuilder.Configure<App>()
.LogToDebug()
.UsePlatformDetect()
.UseReactiveUI()
.UseDataGrid();
.UseReactiveUI();
private static void ConfigureAssetAssembly(AppBuilder builder)
{

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

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

4
samples/ControlCatalog.NetCore/Program.cs

@ -4,6 +4,7 @@ using System.Linq;
using System.Threading;
using Avalonia;
using Avalonia.Skia;
using Avalonia.ReactiveUI;
namespace ControlCatalog.NetCore
{
@ -46,8 +47,7 @@ namespace ControlCatalog.NetCore
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.UseSkia()
.UseReactiveUI()
.UseDataGrid();
.UseReactiveUI();
static void ConsoleSilencer()
{

2
samples/ControlCatalog/App.xaml

@ -4,7 +4,7 @@
<Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.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">
<Setter Property="FontSize" Value="{DynamicResource FontSizeLarge}"/>
<Setter Property="FontWeight" Value="Medium"/>

1
samples/ControlCatalog/MainView.xaml

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

23
samples/ControlCatalog/MainView.xaml.cs

@ -1,8 +1,11 @@
using System;
using System.Collections;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Markup.Xaml.Styling;
using Avalonia.Markup.Xaml.XamlIl;
using Avalonia.Platform;
using ControlCatalog.Pages;
@ -12,7 +15,7 @@ namespace ControlCatalog
{
public MainView()
{
this.InitializeComponent();
AvaloniaXamlLoader.Load(this);
if (AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetRuntimeInfo().IsDesktop)
{
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");
themes.SelectionChanged += (sender, e) =>
{
@ -45,10 +57,5 @@ namespace ControlCatalog
};
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"
xmlns:pages="clr-namespace:ControlCatalog.Pages"
Title="Avalonia Control Gallery"
Icon="/Assets/test_icon.ico"
xmlns:local="clr-namespace:ControlCatalog"
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">
<local:MainView/>
<Window.DataTemplates>
<DataTemplate DataType="vm:NotificationViewModel">
<v:CustomNotificationView />
</DataTemplate>
</Window.DataTemplates>
<Panel>
<local:MainView/>
</Panel>
</Window>

15
samples/ControlCatalog/MainWindow.xaml.cs

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

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

@ -5,14 +5,5 @@ namespace ControlCatalog.Pages
{
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);
}
private void OnSpin(object sender, SpinEventArgs e)
public void OnSpin(object sender, SpinEventArgs e)
{
var spinner = (ButtonSpinner)sender;
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);
}
}
}

8
samples/ControlCatalog/SideBar.xaml

@ -1,6 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.SideBar">
>
<Design.PreviewWith>
<Border Padding="20">
<TabControl Classes="sidebar">
@ -56,20 +56,20 @@
<Setter Property="Opacity" Value="0.5"/>
<Setter Property="Transitions">
<Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.5"/>
<DoubleTransition Property="Opacity" Duration="0:0:0.150"/>
</Transitions>
</Setter>
</Style>
<Style Selector="TabControl.sidebar > TabItem:pointerover">
<Setter Property="Opacity" Value="1"/>
</Style>
<Style Selector="TabControl.sidebar > TabItem:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Style Selector="TabControl.sidebar > TabItem:pointerover">
<Setter Property="Background" Value="Transparent"/>
</Style>
<Style Selector="TabControl.sidebar > TabItem:selected">
<Setter Property="Opacity" Value="1"/>
</Style>
<Style Selector="TabControl.sidebar > TabItem:selected /template/ ContentPresenter#PART_ContentPresenter">
<Style Selector="TabControl.sidebar > TabItem:selected">
<Setter Property="Background" Value="{DynamicResource ThemeAccentBrush2}"/>
</Style>
</Styles>

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">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
</ItemGroup>
<Import Project="..\..\build\SampleApp.props" />
<Import Project="..\..\build\ReferenceCoreLibraries.props" />
<Import Project="..\..\build\BuildTargets.targets" />
</Project>

15
samples/RenderDemo/App.xaml

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

1
samples/RenderDemo/App.xaml.cs

@ -4,6 +4,7 @@
using Avalonia;
using Avalonia.Logging.Serilog;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace RenderDemo
{

5
samples/RenderDemo/MainWindow.xaml

@ -1,4 +1,6 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="RenderDemo.MainWindow"
Title="AvaloniaUI Rendering Test"
xmlns:pages="clr-namespace:RenderDemo.Pages"
Width="800"
@ -33,6 +35,9 @@
<TabItem Header="Drawing">
<pages:DrawingPage/>
</TabItem>
<TabItem Header="SkCanvas">
<pages:CustomSkiaPage/>
</TabItem>
</TabControl>
</DockPanel>
</Window>

7
samples/RenderDemo/Pages/AnimationsPage.xaml

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

16
samples/RenderDemo/Pages/ClippingPage.xaml

@ -1,9 +1,11 @@
<UserControl
xmlns="https://github.com/avaloniaui">
<UserControl
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.Styles>
<Styles>
<Style Selector="Border#clipped :pointerover">
<Style Selector="Border#clipped:pointerover">
<Setter Property="Border.Background" Value="Crimson"/>
</Style>
<Style Selector="Border#clipChild">
@ -17,10 +19,10 @@ xmlns="https://github.com/avaloniaui">
</Style>
</Styles>
</Grid.Styles>
<Border Name="clipped"
Background="Yellow"
Width="100"
Height="100"
<Border Name="clipped"
Background="Yellow"
Width="100"
Height="100"
Clip="M 58.625 0.07421875
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

119
samples/RenderDemo/Pages/CustomSkiaPage.cs

@ -0,0 +1,119 @@
using System;
using System.Diagnostics;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Skia;
using Avalonia.Threading;
using SkiaSharp;
namespace RenderDemo.Pages
{
public class CustomSkiaPage : Control
{
public CustomSkiaPage()
{
ClipToBounds = true;
}
class CustomDrawOp : ICustomDrawOperation
{
private readonly FormattedText _noSkia;
public CustomDrawOp(Rect bounds, FormattedText noSkia)
{
_noSkia = noSkia;
Bounds = bounds;
}
public void Dispose()
{
// No-op
}
public Rect Bounds { get; }
public bool HitTest(Point p) => false;
public bool Equals(ICustomDrawOperation other) => false;
static Stopwatch St = Stopwatch.StartNew();
public void Render(IDrawingContextImpl context)
{
var canvas = (context as ISkiaDrawingContextImpl)?.SkCanvas;
if (canvas == null)
context.DrawText(Brushes.Black, new Point(), _noSkia.PlatformImpl);
else
{
canvas.Save();
// create the first shader
var colors = new SKColor[] {
new SKColor(0, 255, 255),
new SKColor(255, 0, 255),
new SKColor(255, 255, 0),
new SKColor(0, 255, 255)
};
var sx = Animate(100, 2, 10);
var sy = Animate(1000, 5, 15);
var lightPosition = new SKPoint(
(float)(Bounds.Width / 2 + Math.Cos(St.Elapsed.TotalSeconds) * Bounds.Width / 4),
(float)(Bounds.Height / 2 + Math.Sin(St.Elapsed.TotalSeconds) * Bounds.Height / 4));
using (var sweep =
SKShader.CreateSweepGradient(new SKPoint((int)Bounds.Width / 2, (int)Bounds.Height / 2), colors,
null))
using(var turbulence = SKShader.CreatePerlinNoiseFractalNoise(0.05f, 0.05f, 4, 0))
using(var shader = SKShader.CreateCompose(sweep, turbulence, SKBlendMode.SrcATop))
using(var blur = SKImageFilter.CreateBlur(Animate(100, 2, 10), Animate(100, 5, 15)))
using (var paint = new SKPaint
{
Shader = shader,
ImageFilter = blur
})
canvas.DrawPaint(paint);
using (var pseudoLight = SKShader.CreateRadialGradient(
lightPosition,
(float) (Bounds.Width/3),
new [] {
new SKColor(255, 200, 200, 100),
SKColors.Transparent,
new SKColor(40,40,40, 220),
new SKColor(20,20,20, (byte)Animate(100, 200,220)) },
new float[] { 0.3f, 0.3f, 0.8f, 1 },
SKShaderTileMode.Clamp))
using (var paint = new SKPaint
{
Shader = pseudoLight
})
canvas.DrawPaint(paint);
canvas.Restore();
}
}
static int Animate(int d, int from, int to)
{
var ms = (int)(St.ElapsedMilliseconds / d);
var diff = to - from;
var range = diff * 2;
var v = ms % range;
if (v > diff)
v = range - v;
var rv = v + from;
if (rv < from || rv > to)
throw new Exception("WTF");
return rv;
}
}
public override void Render(DrawingContext context)
{
var noSkia = new FormattedText()
{
Text = "Current rendering API is not Skia"
};
context.Custom(new CustomDrawOp(new Rect(0, 0, Bounds.Width, Bounds.Height), noSkia));
Dispatcher.UIThread.InvokeAsync(InvalidateVisual, DispatcherPriority.Background);
}
}
}

6
samples/RenderDemo/Pages/DrawingPage.xaml

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

1
samples/RenderDemo/RenderDemo.csproj

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

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

Loading…
Cancel
Save