зеркало из https://github.com/AvaloniaUI/Avalonia.git
Merge remote-tracking branch 'upstream/master' into skia-merge
This commit is contained in:
Коммит
f28d5627e6
|
@ -1,3 +1,6 @@
|
|||
[submodule "src/Avalonia.ReactiveUI/src"]
|
||||
path = src/Avalonia.ReactiveUI/src
|
||||
url = https://github.com/reactiveui/ReactiveUI.git
|
||||
[submodule "src/Avalonia.HtmlRenderer/external"]
|
||||
path = src/Avalonia.HtmlRenderer/external
|
||||
url = https://github.com/AvaloniaUI/HTML-Renderer.git
|
||||
|
|
|
@ -2,6 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26510.0
|
||||
VisualStudioVersion = 15.0.26430.16
|
||||
VisualStudioVersion = 15.0.26228.4
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
|
||||
EndProject
|
||||
|
@ -162,7 +163,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1
|
|||
build\Microsoft.Reactive.Testing.props = build\Microsoft.Reactive.Testing.props
|
||||
build\Moq.props = build\Moq.props
|
||||
build\NetCore.props = build\NetCore.props
|
||||
build\ReactiveUI.props = build\ReactiveUI.props
|
||||
build\Rx.props = build\Rx.props
|
||||
build\Serilog.props = build\Serilog.props
|
||||
build\Serilog.Sinks.Trace.props = build\Serilog.Sinks.Trace.props
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="reactiveui" Version="8.0.0-alpha0034" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,10 +1,11 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Reactive" Version="3.1.0" />
|
||||
<PackageReference Include="System.Reactive.Core" Version="3.1.0" />
|
||||
<PackageReference Include="System.Reactive.Interfaces" Version="3.1.0" />
|
||||
<PackageReference Include="System.Reactive.Linq" Version="3.1.0" />
|
||||
<PackageReference Include="System.Reactive.PlatformServices" Version="3.1.0" />
|
||||
<PackageReference Condition="$(TargetFramework.StartsWith('net4'))" Include="System.Reactive.Windows.Threading" Version="3.1.0" />
|
||||
<PackageReference Include="System.Reactive" Version="3.0.0" />
|
||||
<PackageReference Include="System.Reactive.Core" Version="3.0.0" />
|
||||
<PackageReference Include="System.Reactive.Interfaces" Version="3.0.0" />
|
||||
<PackageReference Include="System.Reactive.Linq" Version="3.0.0" />
|
||||
<PackageReference Include="System.Reactive.PlatformServices" Version="3.0.0" />
|
||||
<PackageReference Condition="'$(TargetFramework)' == 'net45'" Include="System.Reactive.Windows.Threading" Version="3.0.0" />
|
||||
<PackageReference Condition="'$(TargetFramework)' == 'net461'" Include="System.Reactive.Windows.Threading" Version="3.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -111,7 +111,6 @@ public class Packages
|
|||
var SplatVersion = packageVersions["Splat"].FirstOrDefault().Item1;
|
||||
var SpracheVersion = packageVersions["Sprache"].FirstOrDefault().Item1;
|
||||
var SystemReactiveVersion = packageVersions["System.Reactive"].FirstOrDefault().Item1;
|
||||
var ReactiveUIVersion = packageVersions["reactiveui"].FirstOrDefault().Item1;
|
||||
var SystemValueTupleVersion = packageVersions["System.ValueTuple"].FirstOrDefault().Item1;
|
||||
SkiaSharpVersion = packageVersions["SkiaSharp"].FirstOrDefault().Item1;
|
||||
SkiaSharpLinuxVersion = packageVersions["Avalonia.Skia.Linux.Natives"].FirstOrDefault().Item1;
|
||||
|
@ -125,7 +124,6 @@ public class Packages
|
|||
context.Information("Package: Splat, version: {0}", SplatVersion);
|
||||
context.Information("Package: Sprache, version: {0}", SpracheVersion);
|
||||
context.Information("Package: System.Reactive, version: {0}", SystemReactiveVersion);
|
||||
context.Information("Package: reactiveui, version: {0}", ReactiveUIVersion);
|
||||
context.Information("Package: System.ValueTuple, version: {0}", SystemValueTupleVersion);
|
||||
context.Information("Package: SkiaSharp, version: {0}", SkiaSharpVersion);
|
||||
context.Information("Package: Avalonia.Skia.Linux.Natives, version: {0}", SkiaSharpLinuxVersion);
|
||||
|
@ -178,6 +176,7 @@ public class Packages
|
|||
new [] { "./src/", "Avalonia.Visuals", ".xml" },
|
||||
new [] { "./src/", "Avalonia.Styling", ".dll" },
|
||||
new [] { "./src/", "Avalonia.Styling", ".xml" },
|
||||
new [] { "./src/", "Avalonia.ReactiveUI", ".dll" },
|
||||
new [] { "./src/", "Avalonia.Themes.Default", ".dll" },
|
||||
new [] { "./src/", "Avalonia.Themes.Default", ".xml" },
|
||||
new [] { "./src/Markup/", "Avalonia.Markup", ".dll" },
|
||||
|
@ -274,24 +273,7 @@ public class Packages
|
|||
},
|
||||
BasePath = context.Directory("./src/Avalonia.HtmlRenderer/bin/" + parameters.DirSuffix + "/netstandard1.3"),
|
||||
OutputDirectory = parameters.NugetRoot
|
||||
},
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Avalonia.ReactiveUI
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
new NuGetPackSettings()
|
||||
{
|
||||
Id = "Avalonia.ReactiveUI",
|
||||
Dependencies = new DependencyBuilder(this)
|
||||
{
|
||||
new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
|
||||
}.Deps(new string[] {null}, "reactiveui"),
|
||||
Files = new []
|
||||
{
|
||||
new NuSpecContent { Source = "Avalonia.ReactiveUI.dll", Target = "lib/netstandard1.3" }
|
||||
},
|
||||
BasePath = context.Directory("./src/Avalonia.ReactiveUI/bin/" + parameters.DirSuffix + "/netstandard1.3"),
|
||||
OutputDirectory = parameters.NugetRoot
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
var nuspecNuGetSettingsMobile = new []
|
||||
|
|
|
@ -20,7 +20,6 @@ namespace BindingTest
|
|||
|
||||
AppBuilder.Configure<App>()
|
||||
.UsePlatformDetect()
|
||||
.UseReactiveUI()
|
||||
.Start<MainWindow>();
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -161,5 +162,4 @@
|
|||
<Import Project="..\..\build\Serilog.Sinks.Trace.props" />
|
||||
<Import Project="..\..\build\Splat.props" />
|
||||
<Import Project="..\..\build\Rx.props" />
|
||||
<Import Project="..\..\build\ReactiveUI.props" />
|
||||
</Project>
|
|
@ -27,13 +27,15 @@ namespace BindingTest.ViewModels
|
|||
|
||||
SelectedItems = new ObservableCollection<TestItem>();
|
||||
|
||||
ShuffleItems = ReactiveCommand.Create(() =>
|
||||
ShuffleItems = ReactiveCommand.Create();
|
||||
ShuffleItems.Subscribe(_ =>
|
||||
{
|
||||
var r = new Random();
|
||||
Items.Move(r.Next(Items.Count), 1);
|
||||
});
|
||||
|
||||
StringValueCommand = ReactiveCommand.Create<object>(param =>
|
||||
StringValueCommand = ReactiveCommand.Create();
|
||||
StringValueCommand.Subscribe(param =>
|
||||
{
|
||||
BooleanFlag = !BooleanFlag;
|
||||
StringValue = param.ToString();
|
||||
|
@ -54,7 +56,7 @@ namespace BindingTest.ViewModels
|
|||
|
||||
public ObservableCollection<TestItem> Items { get; }
|
||||
public ObservableCollection<TestItem> SelectedItems { get; }
|
||||
public ReactiveCommand ShuffleItems { get; }
|
||||
public ReactiveCommand<object> ShuffleItems { get; }
|
||||
|
||||
public string BooleanString
|
||||
{
|
||||
|
@ -87,7 +89,7 @@ namespace BindingTest.ViewModels
|
|||
}
|
||||
|
||||
public IObservable<string> CurrentTimeObservable { get; }
|
||||
public ReactiveCommand StringValueCommand { get; }
|
||||
public ReactiveCommand<object> StringValueCommand { get; }
|
||||
|
||||
public DataAnnotationsErrorViewModel DataAnnotationsValidation { get; } = new DataAnnotationsErrorViewModel();
|
||||
public ExceptionErrorViewModel ExceptionDataValidation { get; } = new ExceptionErrorViewModel();
|
||||
|
|
|
@ -21,6 +21,9 @@
|
|||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="Pages\ContextMenuPage.xaml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- A reference to the entire .NET Framework is automatically included -->
|
||||
<EmbeddedResource Include="App.xaml">
|
||||
|
@ -44,6 +47,7 @@
|
|||
<EmbeddedResource Include="Pages\CheckBoxPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\ContextMenuPage.xaml" />
|
||||
<EmbeddedResource Include="Pages\DropDownPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
|
@ -94,6 +98,9 @@
|
|||
<Compile Include="Pages\CarouselPage.xaml.cs">
|
||||
<DependentUpon>CarouselPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\ContextMenuPage.xaml.cs">
|
||||
<DependentUpon>ContextMenuPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\CheckBoxPage.xaml.cs">
|
||||
<DependentUpon>CheckBoxPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
|
@ -117,7 +124,7 @@
|
|||
</Compile>
|
||||
<Compile Include="Pages\SliderPage.xaml.cs">
|
||||
<DependentUpon>SliderPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</Compile>
|
||||
<Compile Include="Pages\TreeViewPage.xaml.cs">
|
||||
<DependentUpon>TreeViewPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<TabItem Header="Canvas"><pages:CanvasPage/></TabItem>
|
||||
<TabItem Header="Carousel"><pages:CarouselPage/></TabItem>
|
||||
<TabItem Header="CheckBox"><pages:CheckBoxPage/></TabItem>
|
||||
<TabItem Header="ContextMenu"><pages:ContextMenuPage/></TabItem>
|
||||
<TabItem Header="DropDown"><pages:DropDownPage/></TabItem>
|
||||
<TabItem Header="Expander"><pages:ExpanderPage/></TabItem>
|
||||
<TabItem Header="Image"><pages:ImagePage/></TabItem>
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<UserControl xmlns="https://github.com/avaloniaui">
|
||||
<StackPanel Orientation="Vertical" Gap="4">
|
||||
<TextBlock Classes="h1">Context Menu</TextBlock>
|
||||
<TextBlock Classes="h2">A right click menu that can be applied to any control.</TextBlock>
|
||||
|
||||
<StackPanel Orientation="Horizontal"
|
||||
Margin="0,16,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
Gap="16">
|
||||
<Border Background="{StyleResource ThemeAccentBrush}"
|
||||
Padding="48,48,48,48">
|
||||
<Border.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="Standard _Menu Item"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1"/>
|
||||
<MenuItem Header="Submenu _2"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Icon">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="resm:ControlCatalog.Assets.github_icon.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox BorderThickness="0" IsHitTestVisible="False" IsChecked="True"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</ContextMenu>
|
||||
</Border.ContextMenu>
|
||||
<TextBlock Text="Right Click Here"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</UserControl>
|
|
@ -0,0 +1,18 @@
|
|||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
||||
namespace ControlCatalog.Pages
|
||||
{
|
||||
public class ContextMenuPage : UserControl
|
||||
{
|
||||
public ContextMenuPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,56 +3,33 @@
|
|||
<TextBlock Classes="h1">Menu</TextBlock>
|
||||
<TextBlock Classes="h2">A window menu</TextBlock>
|
||||
|
||||
<StackPanel Orientation="Horizontal"
|
||||
<StackPanel Orientation="Horizontal"
|
||||
Margin="0,16,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
Gap="16">
|
||||
<Menu>
|
||||
<MenuItem Header="_First">
|
||||
<MenuItem Header="Standard _Menu Item"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1"/>
|
||||
<MenuItem Header="Submenu _2"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Icon">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="resm:ControlCatalog.Assets.github_icon.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox BorderThickness="0" IsHitTestVisible="False" IsChecked="True"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Second">
|
||||
<MenuItem Header="Second _Menu Item"/>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Menu>
|
||||
<MenuItem Header="_First">
|
||||
<MenuItem Header="Standard _Menu Item"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1"/>
|
||||
<MenuItem Header="Submenu _2"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Icon">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="resm:ControlCatalog.Assets.github_icon.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox BorderThickness="0" IsHitTestVisible="False" IsChecked="True"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Second">
|
||||
<MenuItem Header="Second _Menu Item"/>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Classes="h2" Text="A context menu (right click)">
|
||||
<TextBlock.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="Standard _Menu Item"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1"/>
|
||||
<MenuItem Header="Submenu _2"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Icon">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="resm:ControlCatalog.Assets.github_icon.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox BorderThickness="0" IsHitTestVisible="False" IsChecked="True"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</ContextMenu>
|
||||
</TextBlock.ContextMenu>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</UserControl>
|
|
@ -18,7 +18,6 @@ namespace RenderTest
|
|||
// again.
|
||||
AppBuilder.Configure<App>()
|
||||
.UsePlatformDetect()
|
||||
.UseReactiveUI()
|
||||
.Start<MainWindow>();
|
||||
}
|
||||
|
||||
|
|
|
@ -183,5 +183,4 @@
|
|||
<Import Project="..\..\build\Serilog.Sinks.Trace.props" />
|
||||
<Import Project="..\..\build\Splat.props" />
|
||||
<Import Project="..\..\build\Rx.props" />
|
||||
<Import Project="..\..\build\ReactiveUI.props" />
|
||||
</Project>
|
|
@ -10,8 +10,10 @@ namespace RenderTest.ViewModels
|
|||
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
ToggleDrawDirtyRects = ReactiveCommand.Create(() => DrawDirtyRects = !DrawDirtyRects);
|
||||
ToggleDrawFps = ReactiveCommand.Create(() => DrawFps = !DrawFps);
|
||||
ToggleDrawDirtyRects = ReactiveCommand.Create();
|
||||
ToggleDrawDirtyRects.Subscribe(_ => DrawDirtyRects = !DrawDirtyRects);
|
||||
ToggleDrawFps = ReactiveCommand.Create();
|
||||
ToggleDrawFps.Subscribe(_ => DrawFps = !DrawFps);
|
||||
}
|
||||
|
||||
public bool DrawDirtyRects
|
||||
|
@ -26,7 +28,7 @@ namespace RenderTest.ViewModels
|
|||
set { this.RaiseAndSetIfChanged(ref drawFps, value); }
|
||||
}
|
||||
|
||||
public ReactiveCommand ToggleDrawDirtyRects { get; }
|
||||
public ReactiveCommand ToggleDrawFps { get; }
|
||||
public ReactiveCommand<object> ToggleDrawDirtyRects { get; }
|
||||
public ReactiveCommand<object> ToggleDrawFps { get; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@ namespace VirtualizationTest
|
|||
|
||||
AppBuilder.Configure<App>()
|
||||
.UsePlatformDetect()
|
||||
.UseReactiveUI()
|
||||
.Start<MainWindow>();
|
||||
}
|
||||
|
||||
|
|
|
@ -23,15 +23,20 @@ namespace VirtualizationTest.ViewModels
|
|||
public MainWindowViewModel()
|
||||
{
|
||||
this.WhenAnyValue(x => x.ItemCount).Subscribe(ResizeItems);
|
||||
RecreateCommand = ReactiveCommand.Create(() => Recreate());
|
||||
RecreateCommand = ReactiveCommand.Create();
|
||||
RecreateCommand.Subscribe(_ => Recreate());
|
||||
|
||||
AddItemCommand = ReactiveCommand.Create(() => AddItem());
|
||||
AddItemCommand = ReactiveCommand.Create();
|
||||
AddItemCommand.Subscribe(_ => AddItem());
|
||||
|
||||
RemoveItemCommand = ReactiveCommand.Create(() => Remove());
|
||||
RemoveItemCommand = ReactiveCommand.Create();
|
||||
RemoveItemCommand.Subscribe(_ => Remove());
|
||||
|
||||
SelectFirstCommand = ReactiveCommand.Create(() => SelectItem(0));
|
||||
SelectFirstCommand = ReactiveCommand.Create();
|
||||
SelectFirstCommand.Subscribe(_ => SelectItem(0));
|
||||
|
||||
SelectLastCommand = ReactiveCommand.Create(() => SelectItem(Items.Count - 1));
|
||||
SelectLastCommand = ReactiveCommand.Create();
|
||||
SelectLastCommand.Subscribe(_ => SelectItem(Items.Count - 1));
|
||||
}
|
||||
|
||||
public string NewItemString
|
||||
|
@ -73,11 +78,11 @@ namespace VirtualizationTest.ViewModels
|
|||
public IEnumerable<ItemVirtualizationMode> VirtualizationModes =>
|
||||
Enum.GetValues(typeof(ItemVirtualizationMode)).Cast<ItemVirtualizationMode>();
|
||||
|
||||
public ReactiveCommand AddItemCommand { get; private set; }
|
||||
public ReactiveCommand RecreateCommand { get; private set; }
|
||||
public ReactiveCommand RemoveItemCommand { get; private set; }
|
||||
public ReactiveCommand SelectFirstCommand { get; private set; }
|
||||
public ReactiveCommand SelectLastCommand { get; private set; }
|
||||
public ReactiveCommand<object> AddItemCommand { get; private set; }
|
||||
public ReactiveCommand<object> RecreateCommand { get; private set; }
|
||||
public ReactiveCommand<object> RemoveItemCommand { get; private set; }
|
||||
public ReactiveCommand<object> SelectFirstCommand { get; private set; }
|
||||
public ReactiveCommand<object> SelectLastCommand { get; private set; }
|
||||
|
||||
private void ResizeItems(int count)
|
||||
{
|
||||
|
|
|
@ -158,5 +158,4 @@
|
|||
<Import Project="..\..\build\Serilog.Sinks.Trace.props" />
|
||||
<Import Project="..\..\build\Splat.props" />
|
||||
<Import Project="..\..\build\Rx.props" />
|
||||
<Import Project="..\..\build\ReactiveUI.props" />
|
||||
</Project>
|
|
@ -1,5 +1,5 @@
|
|||
copy ..\samples\ControlCatalog.NetCore\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netcoreapp1.0\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netstandard1.1\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.gtk3\$args\lib\netstandard1.1\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.gtk3\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.skia.desktop\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.win32\$args\lib\netstandard1.1\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.win32\$args\lib\netstandard1.3\
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
copy ..\samples\ControlCatalog.NetCore\bin\Release\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netcoreapp1.0\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.gtk3\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.skia.desktop\$args\lib\netstandard1.3\
|
||||
copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp1.1\Avalonia**.dll ~\.nuget\packages\avalonia.win32\$args\lib\netstandard1.3\
|
|
@ -1,24 +0,0 @@
|
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
||||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
||||
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Threading;
|
||||
using ReactiveUI;
|
||||
using System;
|
||||
using System.Reactive.Concurrency;
|
||||
using System.Threading;
|
||||
|
||||
namespace Avalonia
|
||||
{
|
||||
public static class AppBuilderExtensions
|
||||
{
|
||||
public static TAppBuilder UseReactiveUI<TAppBuilder>(this TAppBuilder builder)
|
||||
where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
|
||||
{
|
||||
return builder.AfterSetup(_ =>
|
||||
{
|
||||
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,10 +1,80 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard1.3</TargetFramework>
|
||||
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;MONO PORTABLE;NETSTANDARD1_1</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;MONO PORTABLE;RELEASE;NETSTANDARD1_1</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Shared\SharedAssemblyInfo.cs" Link="Properties\SharedAssemblyInfo.cs" />
|
||||
<None Remove="Shims.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Registrations.cs" />
|
||||
<Compile Include="Shims.cs" />
|
||||
<Compile Include="src\ReactiveUI\ExpressionMixins.cs" />
|
||||
<Compile Include="src\ReactiveUI\ExpressionRewriter.cs" />
|
||||
<Compile Include="src\ReactiveUI\Activation.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveBinding.cs" />
|
||||
<Compile Include="src\ReactiveUI\AutoPersistHelper.cs" />
|
||||
<Compile Include="src\ReactiveUI\BindingTypeConverters.cs" />
|
||||
<Compile Include="src\ReactiveUI\CollectionDebugView.cs" />
|
||||
<Compile Include="src\ReactiveUI\CommandBinding.cs" />
|
||||
<Compile Include="src\ReactiveUI\CompatMixins.cs" />
|
||||
<Compile Include="src\ReactiveUI\ContractStubs.cs" />
|
||||
<Compile Include="src\ReactiveUI\CreatesCommandBinding.cs" />
|
||||
<Compile Include="src\ReactiveUI\DefaultPropertyBinding.cs" />
|
||||
<Compile Include="src\ReactiveUI\Errors.cs" />
|
||||
<Compile Include="src\ReactiveUI\IDependencyResolver.cs" />
|
||||
<Compile Include="src\ReactiveUI\INPCObservableForProperty.cs" />
|
||||
<Compile Include="src\ReactiveUI\Interfaces.cs" />
|
||||
<Compile Include="src\ReactiveUI\IROObservableForProperty.cs" />
|
||||
<Compile Include="src\ReactiveUI\MessageBus.cs" />
|
||||
<Compile Include="src\ReactiveUI\MobileLifecycle.cs" />
|
||||
<Compile Include="src\ReactiveUI\NullDefaultPropertyBindingProvider.cs" />
|
||||
<Compile Include="src\ReactiveUI\ObservableAsPropertyHelper.cs" />
|
||||
<Compile Include="src\ReactiveUI\ObservedChangedMixin.cs" />
|
||||
<Compile Include="src\ReactiveUI\OrderedComparer.cs" />
|
||||
<Compile Include="src\ReactiveUI\POCOObservableForProperty.cs" />
|
||||
<Compile Include="src\ReactiveUI\PropertyBinding.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveList.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveCollectionMixins.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveCommand.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveNotifyPropertyChangedMixin.cs" />
|
||||
<Compile Include="src\ReactiveUI\ReactiveObject.cs" />
|
||||
<Compile Include="src\ReactiveUI\RefcountDisposeWrapper.cs" />
|
||||
<Compile Include="src\ReactiveUI\Reflection.cs" />
|
||||
<Compile Include="src\ReactiveUI\RegisterableInterfaces.cs" />
|
||||
<Compile Include="src\ReactiveUI\Registrations.cs" />
|
||||
<Compile Include="src\ReactiveUI\RoutableViewModelMixin.cs" />
|
||||
<Compile Include="src\ReactiveUI\RoutingState.cs" />
|
||||
<Compile Include="src\ReactiveUI\RxApp.cs" />
|
||||
<Compile Include="src\ReactiveUI\ViewLocator.cs" />
|
||||
<Compile Include="src\ReactiveUI\ScheduledSubject.cs" />
|
||||
<Compile Include="src\ReactiveUI\VariadicTemplates.cs" />
|
||||
<Compile Include="src\ReactiveUI\WaitForDispatcherScheduler.cs" />
|
||||
<Compile Include="src\ReactiveUI\LoggingMixins.cs" />
|
||||
<Compile Include="src\ReactiveUI\IReactiveObject.cs" />
|
||||
<Compile Include="src\ReactiveUI\WeakEventManager.cs" />
|
||||
<Compile Include="src\ReactiveUI\Legacy\ReactiveCommand.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
|
||||
|
@ -17,6 +87,5 @@
|
|||
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\..\build\Rx.props" />
|
||||
<Import Project="..\..\build\ReactiveUI.props" />
|
||||
<Import Project="..\..\build\Splat.props" />
|
||||
</Project>
|
|
@ -1,6 +1,33 @@
|
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
||||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
||||
|
||||
using System.Resources;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Avalonia.ReactiveUI")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Avalonia.ReactiveUI")]
|
||||
[assembly: AssemblyCopyright("Copyright \u00A9 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: NeutralResourcesLanguage("en")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
||||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.Reactive.Concurrency;
|
||||
using System.Threading;
|
||||
|
||||
|
||||
namespace ReactiveUI
|
||||
{
|
||||
/// <summary>
|
||||
/// Ignore me. This class is a secret handshake between RxUI and RxUI.Xaml
|
||||
/// in order to register certain classes on startup that would be difficult
|
||||
/// to register otherwise.
|
||||
/// </summary>
|
||||
public class PlatformRegistrations : IWantsToRegisterStuff
|
||||
{
|
||||
public void Register(Action<Func<object>, Type> registerFunction)
|
||||
{
|
||||
RxApp.MainThreadScheduler = new SynchronizationContextScheduler(SynchronizationContext.Current);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace System.Runtime.Serialization
|
||||
{
|
||||
class IgnoreDataMemberAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
class DataMemberAttribute : Attribute
|
||||
{
|
||||
}
|
||||
class OnDeserializedAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
class DataContractAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
class StreamingContext { }
|
||||
}
|
||||
|
||||
namespace System.Diagnostics.Contracts
|
||||
{
|
||||
static class Contract
|
||||
{
|
||||
public static void Requires(bool condition)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 3f725c808b1d4c8457f0d3204e0a071aa462cd75
|
|
@ -19,6 +19,7 @@
|
|||
<ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
|
||||
<ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
|
||||
|
|
|
@ -10,9 +10,8 @@ using Avalonia.Data;
|
|||
using Avalonia.Markup.Data;
|
||||
using Avalonia.Markup.Xaml.Data;
|
||||
using Moq;
|
||||
using ReactiveUI;
|
||||
using Xunit;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Avalonia.Markup.Xaml.UnitTests.Data
|
||||
{
|
||||
|
@ -351,25 +350,14 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data
|
|||
}
|
||||
}
|
||||
|
||||
public class Source : INotifyPropertyChanged
|
||||
public class Source : ReactiveObject
|
||||
{
|
||||
private string _foo;
|
||||
|
||||
public string Foo
|
||||
{
|
||||
get { return _foo; }
|
||||
set
|
||||
{
|
||||
_foo = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private void RaisePropertyChanged([CallerMemberName] string prop = "")
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
|
||||
set { this.RaiseAndSetIfChanged(ref _foo, value); }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,9 +6,8 @@ using Avalonia.Controls;
|
|||
using Avalonia.Data;
|
||||
using Avalonia.Markup.Data;
|
||||
using Avalonia.Markup.Xaml.Data;
|
||||
using ReactiveUI;
|
||||
using Xunit;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Avalonia.Markup.Xaml.UnitTests.Data
|
||||
{
|
||||
|
@ -25,26 +24,15 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data
|
|||
|
||||
Assert.Equal(target.Text, "foo");
|
||||
}
|
||||
|
||||
public class Source : INotifyPropertyChanged
|
||||
|
||||
public class Source : ReactiveObject
|
||||
{
|
||||
private string _foo;
|
||||
|
||||
public string Foo
|
||||
{
|
||||
get { return _foo; }
|
||||
set
|
||||
{
|
||||
_foo = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private void RaisePropertyChanged([CallerMemberName] string prop = "")
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
|
||||
set { this.RaiseAndSetIfChanged(ref _foo, value); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче