Merge pull request #24 from irihitech/buttongroup

ButtonGroup
This commit is contained in:
Dong Bin
2023-06-28 14:51:12 +08:00
committed by GitHub
16 changed files with 462 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
<UserControl
x:Class="Ursa.Demo.Pages.ButtonGroupDemo"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:u="https://irihi.tech/ursa"
xmlns:vm="clr-namespace:Ursa.Demo.ViewModels;assembly=Ursa.Demo"
d:DesignHeight="450"
d:DesignWidth="800"
x:CompileBindings="True"
x:DataType="vm:ButtonGroupViewModel"
mc:Ignorable="d">
<StackPanel Margin="20" Spacing="20">
<u:ButtonGroup Classes="Primary Solid" ItemsSource="{Binding Items}" />
<u:ButtonGroup Classes="Primary" ItemsSource="{Binding Items}" />
<u:ButtonGroup Classes="Primary Borderless" ItemsSource="{Binding Items}" />
<u:ButtonGroup Classes="Primary Large" ItemsSource="{Binding Items}" />
<u:ButtonGroup Classes="Primary Small" ItemsSource="{Binding Items}" />
</StackPanel>
</UserControl>

View File

@@ -0,0 +1,15 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Ursa.Demo.ViewModels;
namespace Ursa.Demo.Pages;
public partial class ButtonGroupDemo : UserControl
{
public ButtonGroupDemo()
{
InitializeComponent();
this.DataContext = new ButtonGroupViewModel();
}
}

View File

@@ -0,0 +1,11 @@
using System.Collections.ObjectModel;
namespace Ursa.Demo.ViewModels;
public class ButtonGroupViewModel: ViewModelBase
{
public ObservableCollection<string> Items { get; set; } = new ObservableCollection<string>()
{
"Ding", "Otter", "Husky", "Mr. 17", "Cass"
};
}

View File

@@ -29,6 +29,9 @@
<TabItem Header="Banner">
<pages:BannerDemo />
</TabItem>
<TabItem Header="ButtonGroup">
<pages:ButtonGroupDemo />
</TabItem>
<TabItem Header="Divider">
<pages:DividerDemo />
</TabItem>

View File

@@ -0,0 +1,73 @@
<ResourceDictionary
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="https://irihi.tech/ursa">
<!-- Add Resources Here -->
<Design.PreviewWith>
<StackPanel Margin="20">
<u:ButtonGroup Classes="Primary">
<Button Content="Hello" />
</u:ButtonGroup>
</StackPanel>
</Design.PreviewWith>
<ControlTheme x:Key="{x:Type u:ButtonGroup}" TargetType="u:ButtonGroup">
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Background" Value="{DynamicResource ButtonGroupDefaultBackground}" />
<Setter Property="CornerRadius" Value="3" />
<Setter Property="ClipToBounds" Value="True" />
<Setter Property="u:ButtonGroup.ItemContainerTheme" Value="{DynamicResource ButtonGroupItemTheme}" />
<Setter Property="u:ButtonGroup.ItemsPanel">
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</Setter>
<Setter Property="u:ButtonGroup.Template">
<ControlTemplate TargetType="u:ButtonGroup">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
ClipToBounds="True"
CornerRadius="{TemplateBinding CornerRadius}">
<ItemsPresenter Name="PART_ItemsPresenter" ItemsPanel="{TemplateBinding ItemsPanel}" />
</Border>
</ControlTemplate>
</Setter>
</ControlTheme>
<ControlTheme x:Key="ButtonGroupItemTheme" TargetType="Button">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Padding" Value="{DynamicResource ButtonGroupDefaultPadding}" />
<Setter Property="FontWeight" Value="{DynamicResource ButtonGroupDefaultFontWeight}" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Button.Template">
<ControlTemplate TargetType="Button">
<DockPanel LastChildFill="True">
<Rectangle
Name="PART_Separator"
Width="1"
Height="16"
VerticalAlignment="Center"
DockPanel.Dock="Right"
Fill="{DynamicResource ButtonGroupSeparatorForeground}" />
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
<ContentPresenter
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
FontWeight="{TemplateBinding FontWeight}"
Foreground="{TemplateBinding Foreground}" />
</Border>
</DockPanel>
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>

View File

@@ -3,6 +3,7 @@
<ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="Badge.axaml" />
<ResourceInclude Source="Banner.axaml" />
<ResourceInclude Source="ButtonGroup.axaml" />
<ResourceInclude Source="Divider.axaml" />
<ResourceInclude Source="IPv4Box.axaml" />
<ResourceInclude Source="Loading.axaml" />

View File

@@ -17,5 +17,7 @@
</ResourceDictionary>
</Styles.Resources>
<StyleInclude Source="../Styles/_index.axaml" />
<!-- Add Styles Here -->
</Styles>

View File

@@ -0,0 +1,128 @@
<Styles
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="https://irihi.tech/ursa">
<Design.PreviewWith>
<Border Padding="20">
<!-- Add Controls for Previewer Here -->
<u:ButtonGroup Classes="Primary Solid">
<Button Content="Hello" />
<Button Content="Avalonia" />
<Button Content="Hello" />
<Button Content="IRIHI" />
</u:ButtonGroup>
</Border>
</Design.PreviewWith>
<!-- Add Styles Here -->
<Style Selector="u|ButtonGroup Button:nth-last-child(1) /template/ Rectangle#PART_Separator">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="u|ButtonGroup.Borderless">
<Setter Property="Background" Value="Transparent" />
</Style>
<Style Selector="u|ButtonGroup.Large Button">
<Setter Property="Padding" Value="{DynamicResource ButtonGroupLargePadding}" />
</Style>
<Style Selector="u|ButtonGroup.Small Button">
<Setter Property="Padding" Value="{DynamicResource ButtonGroupSmallPadding}" />
</Style>
<Style Selector="u|ButtonGroup Button:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupDefaultPointeroverBackground}" />
</Style>
<Style Selector="u|ButtonGroup Button:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupDefaultPressedBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Primary Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultPrimaryForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Secondary Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultSecondaryForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Tertiary Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultTertiaryForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Warning Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultWarningForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Danger Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultDangerForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Success Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupDefaultSuccessForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Primary">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidPrimaryBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Secondary">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSecondaryBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Tertiary">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidTertiaryBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Warning">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidWarningBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Danger">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidDangerBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Success">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSuccessBackground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid Button">
<Setter Property="Foreground" Value="{DynamicResource ButtonGroupSolidForeground}" />
</Style>
<Style Selector="u|ButtonGroup.Solid Button">
<Setter Property="Background" Value="Transparent" />
</Style>
<Style Selector="u|ButtonGroup.Solid.Primary Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidPrimaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidPrimaryPressedBackground}" />
</Style>
</Style>
<Style Selector="u|ButtonGroup.Solid.Secondary Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSecondaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSecondaryPressedBackground}" />
</Style>
</Style>
<Style Selector="u|ButtonGroup.Solid.Tertiary Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidTertiaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidTertiaryPressedBackground}" />
</Style>
</Style>
<Style Selector="u|ButtonGroup.Solid.Warning Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidWarningPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidWarningPressedBackground}" />
</Style>
</Style>
<Style Selector="u|ButtonGroup.Solid.Danger Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidDangerPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidDangerPressedBackground}" />
</Style>
</Style>
<Style Selector="u|ButtonGroup.Solid.Success Button">
<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSuccessPointeroverBackground}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Background" Value="{DynamicResource ButtonGroupSolidSuccessPressedBackground}" />
</Style>
</Style>
</Styles>

View File

@@ -0,0 +1,9 @@
<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith>
<Border Padding="20">
<!-- Add Controls for Previewer Here -->
</Border>
</Design.PreviewWith>
<StyleInclude Source="ButtonGroup.axaml" />
<!-- Add Styles Here -->
</Styles>

View File

@@ -0,0 +1,80 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Add Resources Here -->
<!-- Light -->
<SolidColorBrush x:Key="ButtonGroupDefaultPrimaryForeground" Color="#54A9FF" />
<SolidColorBrush x:Key="ButtonGroupDefaultSecondaryForeground" Color="#40B4F3" />
<SolidColorBrush x:Key="ButtonGroupDefaultTertiaryForeground" Color="#888D92" />
<SolidColorBrush x:Key="ButtonGroupDefaultSuccessForeground" Color="#5DC264" />
<SolidColorBrush x:Key="ButtonGroupDefaultWarningForeground" Color="#FFAE43" />
<SolidColorBrush x:Key="ButtonGroupDefaultDangerForeground" Color="#FC725A" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledForeground" Opacity="0.35" Color="#F9F9F9" />
<SolidColorBrush x:Key="ButtonGroupDefaultBackground" Opacity="0.12" Color="White" />
<SolidColorBrush x:Key="ButtonGroupDefaultPointeroverBackground" Opacity="0.16" Color="White" />
<SolidColorBrush x:Key="ButtonGroupDefaultPressedBackground" Opacity="0.20" Color="White" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledBackground" Opacity="0.04" Color="#E6E8EA" />
<SolidColorBrush x:Key="ButtonGroupDefaultBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultPointeroverBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultPressedBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledBorderBrush" Color="Transparent" />
<!-- end Light -->
<!-- Solid -->
<SolidColorBrush x:Key="ButtonGroupSolidForeground" Color="White" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledForeground" Color="Gray" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryBackground" Color="#54A9FF" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPointeroverBackground" Color="#7FC1FF" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPressedBackground" Color="#A9D7FF" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryBackground" Color="#40B4F3" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPointeroverBackground" Color="#6EC8F6" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPressedBackground" Color="#9DDCF9" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryBackground" Color="#888D92" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPointeroverBackground" Color="#A7ABB0" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPressedBackground" Color="#C6CACD" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessBackground" Color="#5DC264" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPointeroverBackground" Color="#7FD184" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPressedBackground" Color="#A6E1A8" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningBackground" Color="#FFAE43" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPointeroverBackground" Color="#FFC772" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPressedBackground" Color="#FFDDA1" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerBackground" Color="#FC725A" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPointeroverBackground" Color="#FD9983" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPressedBackground" Color="#FDBEAC" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledBackground" Color="Gray" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryBorderBrush" Color="#54A9FF" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPointeroverBorderBrush" Color="#7FC1FF" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPressedBorderBrush" Color="#A9D7FF" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryBorderBrush" Color="#40B4F3" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPointeroverBorderBrush" Color="#6EC8F6" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPressedBorderBrush" Color="#9DDCF9" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryBorderBrush" Color="#888D92" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPointeroverBorderBrush" Color="#A7ABB0" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPressedBorderBrush" Color="#C6CACD" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessBorderBrush" Color="#5DC264" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPointeroverBorderBrush" Color="#7FD184" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPressedBorderBrush" Color="#A6E1A8" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningBorderBrush" Color="#FFAE43" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPointeroverBorderBrush" Color="#FFC772" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPressedBorderBrush" Color="#FFDDA1" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerBorderBrush" Color="#FC725A" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPointeroverBorderBrush" Color="#FD9983" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPressedBorderBrush" Color="#FDBEAC" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledBorderBrush" Color="#FF2E3238" />
<!-- end Solid -->
</ResourceDictionary>

View File

@@ -3,6 +3,7 @@
<ResourceDictionary.MergedDictionaries>
<MergeResourceInclude Source="Badge.axaml" />
<MergeResourceInclude Source="Banner.axaml" />
<MergeResourceInclude Source="ButtonGroup.axaml" />
<MergeResourceInclude Source="Divider.axaml" />
<MergeResourceInclude Source="IPv4Box.axaml" />
<MergeResourceInclude Source="Loading.axaml" />

View File

@@ -0,0 +1,82 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Add Resources Here -->
<SolidColorBrush x:Key="ButtonGroupSeparatorForeground" Opacity="0.08" Color="#FF1C1F23" />
<!-- Light -->
<SolidColorBrush x:Key="ButtonGroupDefaultPrimaryForeground" Color="#0077FA" />
<SolidColorBrush x:Key="ButtonGroupDefaultSecondaryForeground" Color="#0095EE" />
<SolidColorBrush x:Key="ButtonGroupDefaultTertiaryForeground" Color="#6B7075" />
<SolidColorBrush x:Key="ButtonGroupDefaultSuccessForeground" Color="#3BB346" />
<SolidColorBrush x:Key="ButtonGroupDefaultWarningForeground" Color="#FC8800" />
<SolidColorBrush x:Key="ButtonGroupDefaultDangerForeground" Color="#F93920" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledForeground" Opacity="0.35" Color="#1C1F23" />
<SolidColorBrush x:Key="ButtonGroupDefaultBackground" Opacity="0.05" Color="#2E3238" />
<SolidColorBrush x:Key="ButtonGroupDefaultPointeroverBackground" Opacity="0.09" Color="#2E3238" />
<SolidColorBrush x:Key="ButtonGroupDefaultPressedBackground" Opacity="0.13" Color="#2E3238" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledBackground" Color="#E6E8EA" />
<SolidColorBrush x:Key="ButtonGroupDefaultBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultPointeroverBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultPressedBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="ButtonGroupDefaultDisabledBorderBrush" Color="Transparent" />
<!-- end Light -->
<!-- Solid -->
<SolidColorBrush x:Key="ButtonGroupSolidForeground" Color="White" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledForeground" Color="Gray" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryBackground" Color="#0077FA" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPointeroverBackground" Color="#0062D6" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPressedBackground" Color="#004FB3" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryBackground" Color="#0095EE" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPointeroverBackground" Color="#007BCA" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPressedBackground" Color="#0063A7" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryBackground" Color="#6B7075" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPointeroverBackground" Color="#555B61" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPressedBackground" Color="#41464C" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessBackground" Color="#3BB346" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPointeroverBackground" Color="#30953B" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPressedBackground" Color="#25772F" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningBackground" Color="#FC8800" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPointeroverBackground" Color="#D26700" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPressedBackground" Color="#A84A00" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerBackground" Color="#F93920" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPointeroverBackground" Color="#D52515" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPressedBackground" Color="#B2140C" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledBackground" Color="Gray" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryBorderBrush" Color="#0077FA" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPointeroverBorderBrush" Color="#0062D6" />
<SolidColorBrush x:Key="ButtonGroupSolidPrimaryPressedBorderBrush" Color="#004FB3" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryBorderBrush" Color="#0095EE" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPointeroverBorderBrush" Color="#007BCA" />
<SolidColorBrush x:Key="ButtonGroupSolidSecondaryPressedBorderBrush" Color="#0063A7" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryBorderBrush" Color="#6B7075" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPointeroverBorderBrush" Color="#555B61" />
<SolidColorBrush x:Key="ButtonGroupSolidTertiaryPressedBorderBrush" Color="#41464C" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessBorderBrush" Color="#3BB346" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPointeroverBorderBrush" Color="#30953B" />
<SolidColorBrush x:Key="ButtonGroupSolidSuccessPressedBorderBrush" Color="#25772F" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningBorderBrush" Color="#FC8800" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPointeroverBorderBrush" Color="#D26700" />
<SolidColorBrush x:Key="ButtonGroupSolidWarningPressedBorderBrush" Color="#A84A00" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerBorderBrush" Color="#F93920" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPointeroverBorderBrush" Color="#D52515" />
<SolidColorBrush x:Key="ButtonGroupSolidDangerPressedBorderBrush" Color="#B2140C" />
<SolidColorBrush x:Key="ButtonGroupSolidDisabledBorderBrush" Color="Gray" />
<!-- end Solid -->
</ResourceDictionary>

View File

@@ -3,6 +3,7 @@
<ResourceDictionary.MergedDictionaries>
<MergeResourceInclude Source="Badge.axaml" />
<MergeResourceInclude Source="Banner.axaml" />
<MergeResourceInclude Source="ButtonGroup.axaml" />
<MergeResourceInclude Source="Divider.axaml" />
<MergeResourceInclude Source="IPv4Box.axaml" />
<MergeResourceInclude Source="Loading.axaml" />

View File

@@ -0,0 +1,10 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Add Resources Here -->
<x:Double x:Key="ButtonGroupDefaultFontSize">14</x:Double>
<FontWeight x:Key="ButtonGroupDefaultFontWeight">600</FontWeight>
<CornerRadius x:Key="ButtonGroupCornerRadius">3</CornerRadius>
<Thickness x:Key="ButtonGroupDefaultPadding">12 6</Thickness>
<Thickness x:Key="ButtonGroupLargePadding">16 10</Thickness>
<Thickness x:Key="ButtonGroupSmallPadding">6 2</Thickness>
</ResourceDictionary>

View File

@@ -3,6 +3,7 @@
<ResourceDictionary.MergedDictionaries>
<MergeResourceInclude Source="Badge.axaml" />
<MergeResourceInclude Source="Banner.axaml" />
<MergeResourceInclude Source="ButtonGroup.axaml" />
<MergeResourceInclude Source="Divider.axaml" />
<MergeResourceInclude Source="IPv4Box.axaml" />
<MergeResourceInclude Source="NavigationMenu.axaml" />

View File

@@ -0,0 +1,23 @@
using System.Net.Http.Headers;
using Avalonia;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Media;
using Avalonia.Metadata;
namespace Ursa.Controls;
public class ButtonGroup: ItemsControl
{
protected override bool NeedsContainerOverride(object? item, int index, out object? recycleKey)
{
recycleKey = null;
return item is not Button;
}
protected override Control CreateContainerForItemOverride(object? item, int index, object? recycleKey)
{
return new Button();
}
}