diff --git a/demo/Ursa.Demo/Models/MenuKeys.cs b/demo/Ursa.Demo/Models/MenuKeys.cs index 8faf23a..c8a73c2 100644 --- a/demo/Ursa.Demo/Models/MenuKeys.cs +++ b/demo/Ursa.Demo/Models/MenuKeys.cs @@ -13,6 +13,7 @@ public static class MenuKeys public const string MenuKeyNavigation = "Navigation"; public const string MenuKeyPagination = "Pagination"; public const string MenuKeyTagInput = "TagInput"; - public const string MenuKeyTimeline = "Timeline"; + public const string MenuKeyTimeline = "Timeline"; + public const string MenuKeySkeleton = "Skeleton"; } \ No newline at end of file diff --git a/demo/Ursa.Demo/Pages/SkeletonDemo.axaml b/demo/Ursa.Demo/Pages/SkeletonDemo.axaml new file mode 100644 index 0000000..25f8b79 --- /dev/null +++ b/demo/Ursa.Demo/Pages/SkeletonDemo.axaml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/Ursa.Demo/Pages/SkeletonDemo.axaml.cs b/demo/Ursa.Demo/Pages/SkeletonDemo.axaml.cs new file mode 100644 index 0000000..6d92de3 --- /dev/null +++ b/demo/Ursa.Demo/Pages/SkeletonDemo.axaml.cs @@ -0,0 +1,14 @@ +using Avalonia.Controls; +using Ursa.Demo.ViewModels; + +namespace Ursa.Demo.Pages +{ + public partial class SkeletonDemo : UserControl + { + public SkeletonDemo() + { + InitializeComponent(); + DataContext = new SkeletonDemoViewModel(); + } + } +} diff --git a/demo/Ursa.Demo/Ursa.Demo.csproj b/demo/Ursa.Demo/Ursa.Demo.csproj index d11b6e7..60100cf 100644 --- a/demo/Ursa.Demo/Ursa.Demo.csproj +++ b/demo/Ursa.Demo/Ursa.Demo.csproj @@ -26,4 +26,10 @@ + + + + SkeletonDemo.axaml + + diff --git a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs index 8487910..9ea9037 100644 --- a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs @@ -36,6 +36,7 @@ public class MainViewViewModel : ViewModelBase MenuKeys.MenuKeyPagination => new PaginationDemoViewModel(), MenuKeys.MenuKeyTagInput => new TagInputDemoViewModel(), MenuKeys.MenuKeyTimeline => new TimelineDemoViewModel(), + MenuKeys.MenuKeySkeleton => new SkeletonDemoViewModel(), }; } } \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs index f55365f..4fe232e 100644 --- a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs @@ -23,6 +23,7 @@ public class MenuViewModel: ViewModelBase new() { MenuHeader = "Pagination", Key = MenuKeys.MenuKeyPagination }, new() { MenuHeader = "TagInput", Key = MenuKeys.MenuKeyTagInput }, new() { MenuHeader = "Timeline", Key = MenuKeys.MenuKeyTimeline }, + new() { MenuHeader = "Skeleton", Key = MenuKeys.MenuKeySkeleton }, }; } } \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/SkeletonDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/SkeletonDemoViewModel.cs new file mode 100644 index 0000000..7ee4274 --- /dev/null +++ b/demo/Ursa.Demo/ViewModels/SkeletonDemoViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Ursa.Demo.ViewModels +{ + public class SkeletonDemoViewModel : ViewModelBase + { + } +} diff --git a/src/Ursa.Themes.Semi/Controls/Skeleton.axaml b/src/Ursa.Themes.Semi/Controls/Skeleton.axaml new file mode 100644 index 0000000..0397547 --- /dev/null +++ b/src/Ursa.Themes.Semi/Controls/Skeleton.axaml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Ursa.Themes.Semi/Controls/_index.axaml b/src/Ursa.Themes.Semi/Controls/_index.axaml index 2038cd0..3704b77 100644 --- a/src/Ursa.Themes.Semi/Controls/_index.axaml +++ b/src/Ursa.Themes.Semi/Controls/_index.axaml @@ -13,5 +13,6 @@ + diff --git a/src/Ursa.Themes.Semi/Themes/Dark/Skeleton.axaml b/src/Ursa.Themes.Semi/Themes/Dark/Skeleton.axaml new file mode 100644 index 0000000..fb45bc8 --- /dev/null +++ b/src/Ursa.Themes.Semi/Themes/Dark/Skeleton.axaml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/Ursa.Themes.Semi/Themes/Dark/_index.axaml b/src/Ursa.Themes.Semi/Themes/Dark/_index.axaml index c2ff413..95c4266 100644 --- a/src/Ursa.Themes.Semi/Themes/Dark/_index.axaml +++ b/src/Ursa.Themes.Semi/Themes/Dark/_index.axaml @@ -13,5 +13,6 @@ + diff --git a/src/Ursa.Themes.Semi/Themes/Light/Skeleton.axaml b/src/Ursa.Themes.Semi/Themes/Light/Skeleton.axaml new file mode 100644 index 0000000..fb45bc8 --- /dev/null +++ b/src/Ursa.Themes.Semi/Themes/Light/Skeleton.axaml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/Ursa.Themes.Semi/Themes/Light/_index.axaml b/src/Ursa.Themes.Semi/Themes/Light/_index.axaml index c2ff413..95c4266 100644 --- a/src/Ursa.Themes.Semi/Themes/Light/_index.axaml +++ b/src/Ursa.Themes.Semi/Themes/Light/_index.axaml @@ -13,5 +13,6 @@ + diff --git a/src/Ursa.Themes.Semi/Themes/Shared/Skeleton.axaml b/src/Ursa.Themes.Semi/Themes/Shared/Skeleton.axaml new file mode 100644 index 0000000..ee0bf19 --- /dev/null +++ b/src/Ursa.Themes.Semi/Themes/Shared/Skeleton.axaml @@ -0,0 +1,4 @@ + + + + diff --git a/src/Ursa.Themes.Semi/Themes/Shared/_index.axaml b/src/Ursa.Themes.Semi/Themes/Shared/_index.axaml index 3d93ea5..24ca3ab 100644 --- a/src/Ursa.Themes.Semi/Themes/Shared/_index.axaml +++ b/src/Ursa.Themes.Semi/Themes/Shared/_index.axaml @@ -11,5 +11,6 @@ + diff --git a/src/Ursa.Themes.Semi/Ursa.Themes.Semi.csproj b/src/Ursa.Themes.Semi/Ursa.Themes.Semi.csproj index 88fc18f..4be105c 100644 --- a/src/Ursa.Themes.Semi/Ursa.Themes.Semi.csproj +++ b/src/Ursa.Themes.Semi/Ursa.Themes.Semi.csproj @@ -20,4 +20,8 @@ + + + + diff --git a/src/Ursa/Controls/Skeleton.cs b/src/Ursa/Controls/Skeleton.cs new file mode 100644 index 0000000..6c7c64d --- /dev/null +++ b/src/Ursa/Controls/Skeleton.cs @@ -0,0 +1,20 @@ +using Avalonia; +using Avalonia.Controls; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Ursa.Controls +{ + public class Skeleton : ContentControl + { + + public static readonly StyledProperty IsActiveProperty = + AvaloniaProperty.Register(nameof(IsActive)); + public bool IsActive + { + get { return GetValue(IsActiveProperty); } + set { SetValue(IsActiveProperty, value); } + } + } +}