UI
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:ui="using:FluentAvalonia.UI.Controls"
|
||||
RequestedThemeVariant="Default">
|
||||
RequestedThemeVariant="Dark">
|
||||
<Application.Styles>
|
||||
<ThemeResources />
|
||||
<Style Selector="ui|SettingsExpanderItem">
|
||||
|
||||
@@ -7,12 +7,17 @@ using Microsoft.Extensions.Hosting;
|
||||
using Toolkit.Avalonia;
|
||||
using Toolkit.Foundation;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using HotAvalonia;
|
||||
|
||||
namespace Bitvault.Avalonia;
|
||||
|
||||
public partial class App : Application
|
||||
{
|
||||
public override void Initialize() => AvaloniaXamlLoader.Load(this);
|
||||
public override void Initialize()
|
||||
{
|
||||
this.EnableHotReload();
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
|
||||
public override async void OnFrameworkInitializationCompleted()
|
||||
{
|
||||
|
||||
@@ -8,8 +8,13 @@
|
||||
<ItemGroup>
|
||||
<AvaloniaResource Include="Assets\**" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
|
||||
<DefineConstants>$(DefineConstants);ENABLE_XAML_HOT_RELOAD</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.1.0-beta1" />
|
||||
<PackageReference Condition="$(DefineConstants.Contains(ENABLE_XAML_HOT_RELOAD))" Include="Avalonia.Markup.Xaml.Loader" Version="11.1.0-beta1" />
|
||||
<PackageReference Condition="$(DefineConstants.Contains(ENABLE_XAML_HOT_RELOAD))" Include="HotAvalonia" Version="1.1.0" />
|
||||
<PackageReference Include="HotAvalonia.Extensions" Version="1.1.0" PrivateAssets="All" />
|
||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.1.0-beta1" />
|
||||
<PackageReference Include="Avalonia.Labs.Controls" Version="11.0.10.1" />
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
TransparencyLevelHint="Mica">
|
||||
<ContentControl x:Name="Window">
|
||||
<Interaction.Behaviors>
|
||||
<AttachedBehavior>
|
||||
<AttachedBehaviour>
|
||||
<NavigateAction Context="Window" Route="Main" />
|
||||
</AttachedBehavior>
|
||||
</AttachedBehaviour>
|
||||
</Interaction.Behaviors>
|
||||
</ContentControl>
|
||||
</windowing:AppWindow>
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
PasswordChar="●"
|
||||
Text="{Binding Password}">
|
||||
<Interaction.Behaviors>
|
||||
<KeyBindingTriggerBehavior Gesture="Enter">
|
||||
<InvokeCommandAction Command="{Binding InvokeCommand}" />
|
||||
</KeyBindingTriggerBehavior>
|
||||
<KeyBindingTriggerBehaviour Gesture="Enter">
|
||||
<InvokeCommandAction Command="{Binding InvokeCommand}" />
|
||||
</KeyBindingTriggerBehaviour>
|
||||
</Interaction.Behaviors>
|
||||
</TextBox>
|
||||
</StackPanel>
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
Content="{Binding Name}"
|
||||
IsExpanded="{Binding Expanded, Mode=TwoWay}"
|
||||
IsSelected="{Binding Selected}"
|
||||
MenuItemsSource="{Binding}">
|
||||
MenuItemsSource="{Binding}"
|
||||
SelectsOnInvoked="True">
|
||||
<Interaction.Behaviors>
|
||||
<DataTriggerBehavior Binding="{Binding Opened}" Value="False">
|
||||
<ConditionAction>
|
||||
@@ -18,6 +19,10 @@
|
||||
</ConditionalExpression>
|
||||
</ConditionAction.Condition>
|
||||
<NavigateAction Context="Main" Route="OpenVault" />
|
||||
<ChangePropertyAction
|
||||
PropertyName="SelectsOnInvoked"
|
||||
TargetObject="{Binding #NavigationViewItem}"
|
||||
Value="True" />
|
||||
</ConditionAction>
|
||||
</DataTriggerBehavior>
|
||||
<DataTriggerBehavior Binding="{Binding Opened}" Value="True">
|
||||
@@ -28,14 +33,18 @@
|
||||
</ConditionalExpression>
|
||||
</ConditionAction.Condition>
|
||||
<NavigateAction Context="Main" Route="Vault" />
|
||||
<ChangePropertyAction
|
||||
PropertyName="SelectsOnInvoked"
|
||||
TargetObject="{Binding #NavigationViewItem}"
|
||||
Value="False" />
|
||||
<SelectNavigationViewItemAction />
|
||||
</ConditionAction>
|
||||
</DataTriggerBehavior>
|
||||
<DataTriggerBehavior Binding="{Binding Selected}" Value="True">
|
||||
<NavigationViewItemInvokedBehaviour SelectsChildOnInvoked="True">
|
||||
<ConditionAction>
|
||||
<ConditionAction.Condition>
|
||||
<ConditionalExpression ForwardChaining="And">
|
||||
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="False" />
|
||||
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="False" />
|
||||
<ComparisonCondition LeftOperand="{Binding #NavigationViewItem.IsChildSelected}" RightOperand="False" />
|
||||
</ConditionalExpression>
|
||||
</ConditionAction.Condition>
|
||||
@@ -45,12 +54,11 @@
|
||||
<ConditionAction.Condition>
|
||||
<ConditionalExpression ForwardChaining="And">
|
||||
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="True" />
|
||||
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="False" />
|
||||
<ComparisonCondition LeftOperand="{Binding #NavigationViewItem.IsChildSelected}" RightOperand="False" />
|
||||
</ConditionalExpression>
|
||||
</ConditionAction.Condition>
|
||||
<NavigateAction Context="Main" Route="Vault" />
|
||||
</ConditionAction>
|
||||
</DataTriggerBehavior>
|
||||
</NavigationViewItemInvokedBehaviour>
|
||||
</Interaction.Behaviors>
|
||||
</NavigationViewItem>
|
||||
|
||||
@@ -4,6 +4,9 @@ namespace Bitvault.Avalonia
|
||||
{
|
||||
public partial class VaultNavigationView : NavigationViewItem
|
||||
{
|
||||
public VaultNavigationView() => InitializeComponent();
|
||||
public VaultNavigationView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@
|
||||
Height="40"
|
||||
Margin="0,4,0,0"
|
||||
ColumnDefinitions="*,Auto">
|
||||
<TextBlock Grid.Column="0" Text="Title goes here" />
|
||||
<Button
|
||||
Grid.Column="1"
|
||||
Width="{StaticResource ButtonWidth}"
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
using Toolkit.Foundation;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public class CategoriesNavigationViewModel(IServiceProvider provider,
|
||||
public partial class CategoriesNavigationViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) :
|
||||
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
IVaultNavigationViewModel;
|
||||
IVaultNavigationViewModel
|
||||
{
|
||||
[ObservableProperty]
|
||||
private bool selected;
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
namespace Bitvault;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
public interface IVaultNavigationViewModel;
|
||||
namespace Bitvault;
|
||||
|
||||
public interface IVaultNavigationViewModel : ISelectable;
|
||||
@@ -38,13 +38,12 @@ public partial class VaultNavigationViewModel :
|
||||
|
||||
public Task Handle(Opened args, CancellationToken cancellationToken = default)
|
||||
{
|
||||
Opened = true;
|
||||
|
||||
Add<AllNavigationViewModel>();
|
||||
Add<StarredNavigationViewModel>();
|
||||
Add<ArchiveNavigationViewModel>();
|
||||
Add<CategoriesNavigationViewModel>();
|
||||
|
||||
Opened = true;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,9 @@ public class VaultViewModelHandler(IServiceFactory factory,
|
||||
public async Task Handle(Enumerate<LockerNavigationViewModel> args,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
for (int i = 0; i < 5000; i++)
|
||||
Random rnd = new Random();
|
||||
int d = rnd.Next(5, 10);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (factory.Create<LockerNavigationViewModel>() is LockerNavigationViewModel viewModel)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user