using Avalonia.Controls;
using Avalonia.Interactivity;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
using Ryujinx.Ava.Ui.Controls;
using Ryujinx.Ava.Ui.Models;
using Ryujinx.Ava.Ui.ViewModels;
using Ryujinx.HLE.FileSystem;
namespace Ryujinx.Ava.Ui.Windows
{
public partial class AvatarWindow : UserControl
private NavigationDialogHost _parent;
private TempProfile _profile;
public AvatarWindow(ContentManager contentManager)
ContentManager = contentManager;
DataContext = ViewModel;
InitializeComponent();
}
public AvatarWindow()
AddHandler(Frame.NavigatedToEvent, (s, e) =>
NavigatedTo(e);
}, RoutingStrategies.Direct);
private void NavigatedTo(NavigationEventArgs arg)
if (Program.PreviewerDetached)
if (arg.NavigationMode == NavigationMode.New)
(_parent, _profile) = ((NavigationDialogHost, TempProfile))arg.Parameter;
ContentManager = _parent.ContentManager;
ViewModel = new AvatarProfileViewModel(() => ViewModel.ReloadImages());
public ContentManager ContentManager { get; private set; }
internal AvatarProfileViewModel ViewModel { get; set; }
private void CloseButton_OnClick(object sender, RoutedEventArgs e)
ViewModel.Dispose();
_parent.GoBack();
private void ChooseButton_OnClick(object sender, RoutedEventArgs e)
if (ViewModel.SelectedIndex > -1)
_profile.Image = ViewModel.SelectedImage;