feat: redesign IconButtonDemo.
This commit is contained in:
@@ -2,113 +2,143 @@
|
|||||||
x:Class="Ursa.Demo.Pages.IconButtonDemo"
|
x:Class="Ursa.Demo.Pages.IconButtonDemo"
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:common="clr-namespace:Ursa.Common;assembly=Ursa"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:u="https://irihi.tech/ursa"
|
xmlns:u="https://irihi.tech/ursa"
|
||||||
d:DesignHeight="450"
|
xmlns:vm="clr-namespace:Ursa.Demo.ViewModels"
|
||||||
|
xmlns:common="clr-namespace:Ursa.Common;assembly=Ursa"
|
||||||
|
d:DesignHeight="NaN"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
|
x:DataType="vm:IconButtonDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<StackPanel HorizontalAlignment="Left" Spacing="16">
|
<Design.DataContext>
|
||||||
<ToggleSwitch Name="loading" Content="Toggle Loading" />
|
<vm:IconButtonDemoViewModel />
|
||||||
<u:EnumSelector Name="placement" EnumType="{x:Type common:Position}" />
|
</Design.DataContext>
|
||||||
<u:IconButton
|
<ScrollViewer>
|
||||||
Content="Hello World"
|
<StackPanel Margin="20" Spacing="8" HorizontalAlignment="Left" Width="500">
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<Border Theme="{StaticResource CardBorder}">
|
||||||
IsLoading="{Binding #loading.IsChecked}" />
|
<StackPanel Spacing="8">
|
||||||
<u:IconButton
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
Content="Hello Panda"
|
<u:IconButton Icon="🐼" />
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<u:IconButton Icon="{StaticResource SemiIconCamera}" />
|
||||||
IsLoading="{Binding #loading.IsChecked}">
|
<u:IconButton Icon="{StaticResource SemiIconCamera}" IsEnabled="False" />
|
||||||
<u:IconButton.Icon>
|
</StackPanel>
|
||||||
<TextBlock
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
HorizontalAlignment="Center"
|
<u:IconButton
|
||||||
FontSize="40"
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
Text="🐼" />
|
<u:IconButton
|
||||||
</u:IconButton.Icon>
|
Classes="Secondary"
|
||||||
</u:IconButton>
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
<u:IconButton
|
<u:IconButton
|
||||||
Content="GitHub"
|
Classes="Warning"
|
||||||
IconPlacement="{Binding #placement.Value}"
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
IsLoading="{Binding #loading.IsChecked}">
|
<u:IconButton
|
||||||
<u:IconButton.Icon>
|
Classes="Danger"
|
||||||
<PathIcon
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
Theme="{StaticResource InnerPathIcon}"
|
</StackPanel>
|
||||||
Data="{StaticResource SemiIconGithubLogo}" />
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
</u:IconButton.Icon>
|
<u:IconButton
|
||||||
</u:IconButton>
|
Theme="{StaticResource SolidIconButton}"
|
||||||
<u:IconButton
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
Width="150"
|
<u:IconButton
|
||||||
Content="GitHub"
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<u:IconButton
|
||||||
IsLoading="{Binding #loading.IsChecked}">
|
Theme="{StaticResource BorderlessIconButton}"
|
||||||
<u:IconButton.Icon>
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
<PathIcon
|
<u:IconButton
|
||||||
Theme="{StaticResource InnerPathIcon}"
|
Theme="{StaticResource OutlineIconButton}"
|
||||||
Data="{StaticResource SemiIconGithubLogo}" />
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
</u:IconButton.Icon>
|
</StackPanel>
|
||||||
</u:IconButton>
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
<u:IconButton
|
<u:IconButton
|
||||||
Width="150"
|
Theme="{StaticResource SolidIconButton}"
|
||||||
Classes="Warning"
|
Icon="{StaticResource SemiIconSidebar}"
|
||||||
Content="GitHub"
|
Content="收起" />
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<u:IconButton
|
||||||
IsLoading="{Binding #loading.IsChecked}">
|
Theme="{StaticResource SolidIconButton}"
|
||||||
<u:IconButton.Icon>
|
IconPlacement="Right"
|
||||||
<PathIcon
|
Icon="{StaticResource SemiIconChevronDown}"
|
||||||
Theme="{StaticResource InnerPathIcon}"
|
Content="展开选项" />
|
||||||
Data="{StaticResource SemiIconGithubLogo}" />
|
</StackPanel>
|
||||||
</u:IconButton.Icon>
|
</StackPanel>
|
||||||
</u:IconButton>
|
</Border>
|
||||||
<u:IconButton
|
|
||||||
Width="150"
|
<Border Theme="{StaticResource CardBorder}">
|
||||||
Content="GitHub"
|
<StackPanel Spacing="8">
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
IsLoading="{Binding #loading.IsChecked}"
|
<TextBlock
|
||||||
Theme="{DynamicResource SolidIconButton}">
|
VerticalAlignment="Center"
|
||||||
<u:IconButton.Icon>
|
Text="加载态"
|
||||||
<PathIcon
|
FontWeight="Bold" />
|
||||||
Theme="{StaticResource InnerPathIcon}"
|
<ToggleSwitch
|
||||||
Data="{StaticResource SemiIconGithubLogo}" />
|
Theme="{StaticResource SimpleToggleSwitch}"
|
||||||
</u:IconButton.Icon>
|
IsChecked="{Binding IsLoading}" />
|
||||||
</u:IconButton>
|
</StackPanel>
|
||||||
<u:IconButton
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
Width="150"
|
<u:IconButton
|
||||||
Classes="Warning"
|
IsLoading="{Binding IsLoading}"
|
||||||
Content="GitHub"
|
Content="保存" />
|
||||||
IconPlacement="{Binding #placement.Value}"
|
<u:IconButton
|
||||||
IsLoading="{Binding #loading.IsChecked}"
|
Classes="Danger"
|
||||||
Theme="{DynamicResource SolidIconButton}">
|
Icon="{StaticResource SemiIconDelete}"
|
||||||
<u:IconButton.Icon>
|
IsLoading="{Binding IsLoading}"
|
||||||
<PathIcon
|
Content="删除" />
|
||||||
Theme="{StaticResource InnerPathIcon}"
|
<u:IconButton
|
||||||
Data="{StaticResource SemiIconGithubLogo}" />
|
Width="200"
|
||||||
</u:IconButton.Icon>
|
Theme="{StaticResource SolidIconButton}"
|
||||||
</u:IconButton>
|
Classes="Warning"
|
||||||
<u:IconButton
|
IsLoading="{Binding IsLoading}"
|
||||||
Classes="Danger"
|
Content="撤销" />
|
||||||
IsLoading="{Binding #loading.IsChecked}"
|
</StackPanel>
|
||||||
Theme="{DynamicResource SolidIconButton}">
|
</StackPanel>
|
||||||
<u:IconButton.Icon>
|
</Border>
|
||||||
<TextBlock
|
|
||||||
HorizontalAlignment="Center"
|
<Border Theme="{StaticResource CardBorder}">
|
||||||
FontSize="40"
|
<StackPanel Spacing="8">
|
||||||
Text="🐼" />
|
<u:EnumSelector
|
||||||
</u:IconButton.Icon>
|
Width="100"
|
||||||
</u:IconButton>
|
EnumType="common:Position"
|
||||||
|
Value="{Binding SelectedPosition}" />
|
||||||
<u:IconButton
|
<u:IconButton
|
||||||
IsLoading="{Binding #loading.IsChecked}"
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
Icon="🐼"
|
Icon="{StaticResource SemiIconCamera}"
|
||||||
Content="Borderless"
|
Content="Hello Camera" />
|
||||||
Theme="{DynamicResource BorderlessIconButton}">
|
<u:IconButton
|
||||||
</u:IconButton>
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
|
Icon="🐼"
|
||||||
<u:IconButton
|
Content="Hello Panda" />
|
||||||
IsLoading="{Binding #loading.IsChecked}"
|
<u:IconButton
|
||||||
Icon="🐼"
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
Content="Outline"
|
Content="Hello Panda">
|
||||||
Theme="{DynamicResource OutlineIconButton}">
|
<u:IconButton.Icon>
|
||||||
</u:IconButton>
|
<TextBlock
|
||||||
</StackPanel>
|
FontSize="40"
|
||||||
</UserControl>
|
HorizontalAlignment="Center"
|
||||||
|
Text="🐼" />
|
||||||
|
</u:IconButton.Icon>
|
||||||
|
</u:IconButton>
|
||||||
|
<u:IconButton
|
||||||
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
|
Theme="{StaticResource SolidIconButton}"
|
||||||
|
Classes="Danger Large">
|
||||||
|
<u:IconButton.Icon>
|
||||||
|
<TextBlock FontSize="40" Text="🐼" />
|
||||||
|
</u:IconButton.Icon>
|
||||||
|
</u:IconButton>
|
||||||
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
|
<u:IconButton
|
||||||
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
|
Theme="{StaticResource SolidIconButton}"
|
||||||
|
Classes="Danger Large"
|
||||||
|
Icon="{StaticResource SemiIconCamera}" />
|
||||||
|
<u:IconButton
|
||||||
|
IconPlacement="{Binding SelectedPosition}"
|
||||||
|
Theme="{StaticResource SolidIconButton}"
|
||||||
|
Classes="Danger Large"
|
||||||
|
Icon="🐼" />
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
</UserControl>
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
using Ursa.Common;
|
||||||
|
|
||||||
namespace Ursa.Demo.ViewModels;
|
namespace Ursa.Demo.ViewModels;
|
||||||
|
|
||||||
public class IconButtonDemoViewModel : ObservableObject
|
public partial class IconButtonDemoViewModel : ObservableObject
|
||||||
{
|
{
|
||||||
|
[ObservableProperty] private bool _isLoading;
|
||||||
|
[ObservableProperty] private Position _selectedPosition;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user