UI: Main Window + General (ryubing/ryujinx!150)
See merge request ryubing/ryujinx!150
This commit is contained in:
parent
1900924a78
commit
60b9723df4
13 changed files with 560 additions and 678 deletions
1069
assets/locales.json
1069
assets/locales.json
File diff suppressed because it is too large
Load diff
|
|
@ -19,6 +19,7 @@
|
||||||
<Color x:Key="Unbounded">#FFFF4554</Color>
|
<Color x:Key="Unbounded">#FFFF4554</Color>
|
||||||
<Color x:Key="Custom">#6483F5</Color>
|
<Color x:Key="Custom">#6483F5</Color>
|
||||||
<Color x:Key="Warning">#800080</Color>
|
<Color x:Key="Warning">#800080</Color>
|
||||||
|
<Color x:Key="CustomConfig">#00B5B8</Color>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
<ResourceDictionary x:Key="Light">
|
<ResourceDictionary x:Key="Light">
|
||||||
<SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
|
<SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
|
||||||
|
|
@ -38,6 +39,7 @@
|
||||||
<Color x:Key="Unbounded">#FFFF4554</Color>
|
<Color x:Key="Unbounded">#FFFF4554</Color>
|
||||||
<Color x:Key="Custom">#6483F5</Color>
|
<Color x:Key="Custom">#6483F5</Color>
|
||||||
<Color x:Key="Warning">#800080</Color>
|
<Color x:Key="Warning">#800080</Color>
|
||||||
|
<Color x:Key="CustomConfig">#00B5B8</Color>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
<ResourceDictionary x:Key="Dark">
|
<ResourceDictionary x:Key="Dark">
|
||||||
<SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
|
<SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
|
||||||
|
|
@ -57,6 +59,7 @@
|
||||||
<Color x:Key="Unbounded">#FFFF4554</Color>
|
<Color x:Key="Unbounded">#FFFF4554</Color>
|
||||||
<Color x:Key="Custom">#6483F5</Color>
|
<Color x:Key="Custom">#6483F5</Color>
|
||||||
<Color x:Key="Warning">#FFA500</Color>
|
<Color x:Key="Warning">#FFA500</Color>
|
||||||
|
<Color x:Key="CustomConfig">#00B5B8</Color>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</ResourceDictionary.ThemeDictionaries>
|
</ResourceDictionary.ThemeDictionaries>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
|
|
|
||||||
|
|
@ -101,8 +101,8 @@ namespace Ryujinx.Ava.Systems
|
||||||
await Dispatcher.UIThread.InvokeAsync(async () =>
|
await Dispatcher.UIThread.InvokeAsync(async () =>
|
||||||
{
|
{
|
||||||
string newVersionString = ReleaseInformation.IsCanaryBuild
|
string newVersionString = ReleaseInformation.IsCanaryBuild
|
||||||
? $"Canary {currentVersion} -> Canary {newVersion}"
|
? $"Canary {currentVersion} → Canary {newVersion}"
|
||||||
: $"{currentVersion} -> {newVersion}";
|
: $"{currentVersion} → {newVersion}";
|
||||||
|
|
||||||
Logger.Info?.Print(LogClass.Application, $"Version found: {newVersionString}");
|
Logger.Info?.Print(LogClass.Application, $"Version found: {newVersionString}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,16 +114,20 @@
|
||||||
Header="{ext:Locale GameListContextMenuCacheManagementPurgePptc}"
|
Header="{ext:Locale GameListContextMenuCacheManagementPurgePptc}"
|
||||||
Icon="{ext:Icon fa-solid fa-arrow-rotate-right}"
|
Icon="{ext:Icon fa-solid fa-arrow-rotate-right}"
|
||||||
ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
|
ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
|
||||||
|
<Separator/>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Command="{Binding NukePtcCache}"
|
Command="{Binding NukePtcCache}"
|
||||||
CommandParameter="{Binding}"
|
CommandParameter="{Binding}"
|
||||||
Header="{ext:Locale GameListContextMenuCacheManagementNukePptc}"
|
Header="{ext:Locale GameListContextMenuCacheManagementNukePptc}"
|
||||||
Icon="{ext:Icon fa-solid fa-trash-can}" />
|
Icon="{ext:Icon fa-solid fa-trash-can}"
|
||||||
|
IsEnabled="{Binding HasPtcCacheFiles}" />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Command="{Binding PurgeShaderCache}"
|
Command="{Binding PurgeShaderCache}"
|
||||||
CommandParameter="{Binding}"
|
CommandParameter="{Binding}"
|
||||||
Header="{ext:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
|
Header="{ext:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
|
||||||
Icon="{ext:Icon fa-solid fa-trash-can}" />
|
Icon="{ext:Icon fa-solid fa-trash-can}"
|
||||||
|
IsEnabled="{Binding HasShaderCacheFiles}" />
|
||||||
|
<Separator/>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Command="{Binding OpenPtcDirectory}"
|
Command="{Binding OpenPtcDirectory}"
|
||||||
CommandParameter="{Binding}"
|
CommandParameter="{Binding}"
|
||||||
|
|
|
||||||
|
|
@ -354,8 +354,8 @@ namespace Ryujinx.Ava.UI.Helpers
|
||||||
primary,
|
primary,
|
||||||
secondaryText,
|
secondaryText,
|
||||||
LocaleManager.Instance[LocaleKeys.InputDialogYes],
|
LocaleManager.Instance[LocaleKeys.InputDialogYes],
|
||||||
LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
|
|
||||||
LocaleManager.Instance[LocaleKeys.InputDialogNo],
|
LocaleManager.Instance[LocaleKeys.InputDialogNo],
|
||||||
|
LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
|
||||||
(int)Symbol.Help,
|
(int)Symbol.Help,
|
||||||
UserResult.Yes);
|
UserResult.Yes);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1897,7 +1897,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
secondaryText,
|
secondaryText,
|
||||||
LocaleManager.Instance[LocaleKeys.Continue],
|
LocaleManager.Instance[LocaleKeys.Continue],
|
||||||
LocaleManager.Instance[LocaleKeys.Cancel],
|
LocaleManager.Instance[LocaleKeys.Cancel],
|
||||||
LocaleManager.Instance[LocaleKeys.TrimXCIFileDialogTitle]
|
LocaleManager.Instance[LocaleKeys.GameListContextMenuTrimXCI]
|
||||||
);
|
);
|
||||||
|
|
||||||
if (result == UserResult.Yes)
|
if (result == UserResult.Yes)
|
||||||
|
|
@ -2121,7 +2121,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
});
|
});
|
||||||
|
|
||||||
public static AsyncRelayCommand<MainWindowViewModel> NukePtcCache { get; } =
|
public static AsyncRelayCommand<MainWindowViewModel> NukePtcCache { get; } =
|
||||||
Commands.CreateConditional<MainWindowViewModel>(vm => vm?.SelectedApplication != null,
|
Commands.CreateConditional<MainWindowViewModel>(vm => vm?.SelectedApplication != null &&
|
||||||
|
vm.HasPtcCacheFiles(),
|
||||||
async viewModel =>
|
async viewModel =>
|
||||||
{
|
{
|
||||||
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
||||||
|
|
@ -2170,8 +2171,22 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
private bool HasPtcCacheFiles()
|
||||||
|
{
|
||||||
|
if (this.SelectedApplication == null) return false;
|
||||||
|
|
||||||
|
DirectoryInfo mainDir = new DirectoryInfo(Path.Combine(AppDataManager.GamesDirPath,
|
||||||
|
this.SelectedApplication.IdString, "cache", "cpu", "0"));
|
||||||
|
DirectoryInfo backupDir = new DirectoryInfo(Path.Combine(AppDataManager.GamesDirPath,
|
||||||
|
this.SelectedApplication.IdString, "cache", "cpu", "1"));
|
||||||
|
|
||||||
|
return (mainDir.Exists && (mainDir.EnumerateFiles("*.cache").Any() || mainDir.EnumerateFiles("*.info").Any())) ||
|
||||||
|
(backupDir.Exists && (backupDir.EnumerateFiles("*.cache").Any() || backupDir.EnumerateFiles("*.info").Any()));
|
||||||
|
}
|
||||||
|
|
||||||
public static AsyncRelayCommand<MainWindowViewModel> PurgeShaderCache { get; } =
|
public static AsyncRelayCommand<MainWindowViewModel> PurgeShaderCache { get; } =
|
||||||
Commands.CreateConditional<MainWindowViewModel>(vm => vm?.SelectedApplication != null,
|
Commands.CreateConditional<MainWindowViewModel>(
|
||||||
|
vm => vm?.SelectedApplication != null && vm.HasShaderCacheFiles(),
|
||||||
async viewModel =>
|
async viewModel =>
|
||||||
{
|
{
|
||||||
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
||||||
|
|
@ -2228,6 +2243,20 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
private bool HasShaderCacheFiles()
|
||||||
|
{
|
||||||
|
if (this.SelectedApplication == null) return false;
|
||||||
|
|
||||||
|
DirectoryInfo shaderCacheDir = new(Path.Combine(AppDataManager.GamesDirPath,
|
||||||
|
this.SelectedApplication.IdString, "cache", "shader"));
|
||||||
|
|
||||||
|
if (!shaderCacheDir.Exists) return false;
|
||||||
|
|
||||||
|
return shaderCacheDir.EnumerateDirectories("*").Any() ||
|
||||||
|
shaderCacheDir.GetFiles("*.toc").Any() ||
|
||||||
|
shaderCacheDir.GetFiles("*.data").Any();
|
||||||
|
}
|
||||||
|
|
||||||
public static RelayCommand<MainWindowViewModel> OpenPtcDirectory { get; } =
|
public static RelayCommand<MainWindowViewModel> OpenPtcDirectory { get; } =
|
||||||
Commands.CreateConditional<MainWindowViewModel>(vm => vm?.SelectedApplication != null,
|
Commands.CreateConditional<MainWindowViewModel>(vm => vm?.SelectedApplication != null,
|
||||||
viewModel =>
|
viewModel =>
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,6 @@
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Orientation="Horizontal">
|
Orientation="Horizontal">
|
||||||
<TextBlock
|
|
||||||
Margin="10,0"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{ext:Locale CommonSort}" />
|
|
||||||
<DropDownButton
|
<DropDownButton
|
||||||
Width="150"
|
Width="150"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
|
|
|
||||||
|
|
@ -235,11 +235,6 @@
|
||||||
Name="AboutWindowMenuItem"
|
Name="AboutWindowMenuItem"
|
||||||
Header="{ext:Locale MenuBarHelpAbout}"
|
Header="{ext:Locale MenuBarHelpAbout}"
|
||||||
Icon="{ext:Icon fa-solid fa-circle-info}" />
|
Icon="{ext:Icon fa-solid fa-circle-info}" />
|
||||||
<MenuItem
|
|
||||||
Name="UpdateMenuItem"
|
|
||||||
IsEnabled="{Binding CanUpdate}"
|
|
||||||
Header="{ext:Locale MenuBarHelpCheckForUpdates}"
|
|
||||||
Icon="{ext:Icon fa-solid fa-rotate}" />
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Name="CompatibilityListMenuItem"
|
Name="CompatibilityListMenuItem"
|
||||||
Header="{ext:Locale CompatibilityListOpen}"
|
Header="{ext:Locale CompatibilityListOpen}"
|
||||||
|
|
@ -255,21 +250,24 @@
|
||||||
Name="SetupGuideMenuItem"
|
Name="SetupGuideMenuItem"
|
||||||
Header="{ext:Locale MenuBarHelpSetup}"
|
Header="{ext:Locale MenuBarHelpSetup}"
|
||||||
Icon="{ext:Icon fa-brands fa-gitlab}"
|
Icon="{ext:Icon fa-brands fa-gitlab}"
|
||||||
CommandParameter="{x:Static common:SharedConstants.SetupGuideWikiUrl}"
|
CommandParameter="{x:Static common:SharedConstants.SetupGuideWikiUrl}" />
|
||||||
ToolTip.Tip="{ext:Locale MenuBarHelpSetupTooltip}" />
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Name="LdnGuideMenuItem"
|
Name="LdnGuideMenuItem"
|
||||||
Header="{ext:Locale MenuBarHelpMultiplayer}"
|
Header="{ext:Locale MenuBarHelpMultiplayer}"
|
||||||
Icon="{ext:Icon fa-brands fa-gitlab}"
|
Icon="{ext:Icon fa-brands fa-gitlab}"
|
||||||
CommandParameter="{x:Static common:SharedConstants.MultiplayerWikiUrl}"
|
CommandParameter="{x:Static common:SharedConstants.MultiplayerWikiUrl}" />
|
||||||
ToolTip.Tip="{ext:Locale MenuBarHelpMultiplayerTooltip}" />
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Name="FaqMenuItem"
|
Name="FaqMenuItem"
|
||||||
Header="{ext:Locale MenuBarHelpFaq}"
|
Header="{ext:Locale MenuBarHelpFaq}"
|
||||||
Icon="{ext:Icon fa-brands fa-gitlab}"
|
Icon="{ext:Icon fa-brands fa-gitlab}"
|
||||||
CommandParameter="{x:Static common:SharedConstants.FaqWikiUrl}"
|
CommandParameter="{x:Static common:SharedConstants.FaqWikiUrl}" />
|
||||||
ToolTip.Tip="{ext:Locale MenuBarHelpFaqTooltip}" />
|
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<Separator />
|
||||||
|
<MenuItem
|
||||||
|
Name="UpdateMenuItem"
|
||||||
|
IsEnabled="{Binding CanUpdate}"
|
||||||
|
Header="{ext:Locale MenuBarHelpCheckForUpdates}"
|
||||||
|
Icon="{ext:Icon fa-solid fa-rotate}" />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,6 @@
|
||||||
FontFamily="avares://FluentAvalonia/Fonts#Symbols"
|
FontFamily="avares://FluentAvalonia/Fonts#Symbols"
|
||||||
Glyph="{helpers:GlyphValueConverter Grid}" />
|
Glyph="{helpers:GlyphValueConverter Grid}" />
|
||||||
</Button>
|
</Button>
|
||||||
<TextBlock
|
|
||||||
Margin="10,0,5,0"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{ext:Locale IconSize}" />
|
|
||||||
<controls:SliderScroll
|
<controls:SliderScroll
|
||||||
Width="150"
|
Width="150"
|
||||||
Height="35"
|
Height="35"
|
||||||
|
|
@ -171,11 +167,5 @@
|
||||||
</Flyout>
|
</Flyout>
|
||||||
</DropDownButton.Flyout>
|
</DropDownButton.Flyout>
|
||||||
</DropDownButton>
|
</DropDownButton>
|
||||||
<TextBlock
|
|
||||||
Margin="10,0"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
DockPanel.Dock="Right"
|
|
||||||
Text="{ext:Locale CommonSort}" />
|
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<ListBox.Styles>
|
<ListBox.Styles>
|
||||||
<Style Selector="ListBoxItem">
|
<Style Selector="ListBoxItem">
|
||||||
<Setter Property="Margin" Value="5" />
|
<Setter Property="Margin" Value="5" />
|
||||||
<Setter Property="CornerRadius" Value="4" />
|
<Setter Property="CornerRadius" Value="15" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
|
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
|
||||||
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).GridItemSelectorSize}" />
|
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).GridItemSelectorSize}" />
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
|
Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
|
||||||
Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
|
Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
|
||||||
ClipToBounds="True"
|
ClipToBounds="True"
|
||||||
CornerRadius="4">
|
CornerRadius="12.5">
|
||||||
<Grid RowDefinitions="Auto,Auto">
|
<Grid RowDefinitions="Auto,Auto">
|
||||||
<Image
|
<Image
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
|
|
@ -72,42 +72,26 @@
|
||||||
Text="{Binding Name}"
|
Text="{Binding Name}"
|
||||||
TextAlignment="Center"
|
TextAlignment="Center"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
<TextBlock
|
|
||||||
IsVisible="{Binding HasIndependentConfiguration}"
|
|
||||||
Text="{ext:Locale GameSpecificConfigurationHeader}"
|
|
||||||
TextAlignment="Center"
|
|
||||||
TextWrapping="Wrap"
|
|
||||||
Foreground="{DynamicResource Warning}" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
<ui:SymbolIcon
|
<ui:SymbolIcon
|
||||||
Margin="5,5,0,0"
|
Margin="2.5,2.5,0,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
FontSize="18"
|
FontSize="23"
|
||||||
Foreground="{DynamicResource FavoriteApplicationIconColor}"
|
Foreground="{DynamicResource FavoriteApplicationIconColor}"
|
||||||
IsVisible="{Binding Favorite}"
|
IsVisible="{Binding Favorite}"
|
||||||
Symbol="StarFilled" />
|
Symbol="StarFilled" />
|
||||||
<Grid IsVisible="{Binding !$parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ShowNames}">
|
<ui:SymbolIcon
|
||||||
<Border
|
Margin="0,2.5,2.5,0"
|
||||||
Margin="15,35,5,15"
|
HorizontalAlignment="Right"
|
||||||
HorizontalAlignment="Left"
|
VerticalAlignment="Top"
|
||||||
VerticalAlignment="Bottom"
|
FontSize="23"
|
||||||
Width="90"
|
Foreground="{DynamicResource CustomConfig}"
|
||||||
Height="20"
|
IsVisible="{Binding HasIndependentConfiguration}"
|
||||||
CornerRadius="4"
|
Symbol="SettingsFilled" />
|
||||||
IsVisible="{Binding HasIndependentConfiguration}"
|
|
||||||
Background="{DynamicResource ThemeContentBackgroundColor}">
|
|
||||||
<TextBlock
|
|
||||||
HorizontalAlignment="Center"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{ext:Locale GameSpecificConfigurationHeader}"
|
|
||||||
TextAlignment="Center"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
</Border>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,9 @@
|
||||||
</ItemsPanelTemplate>
|
</ItemsPanelTemplate>
|
||||||
</ListBox.ItemsPanel>
|
</ListBox.ItemsPanel>
|
||||||
<ListBox.Styles>
|
<ListBox.Styles>
|
||||||
|
<Style Selector="ListBoxItem">
|
||||||
|
<Setter Property="CornerRadius" Value="15" />
|
||||||
|
</Style>
|
||||||
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
|
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
|
||||||
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ListItemSelectorSize}" />
|
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ListItemSelectorSize}" />
|
||||||
</Style>
|
</Style>
|
||||||
|
|
@ -46,9 +49,11 @@
|
||||||
Padding="10"
|
Padding="10"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
VerticalAlignment="Stretch"
|
VerticalAlignment="Stretch"
|
||||||
ClipToBounds="True"
|
ClipToBounds="True">
|
||||||
CornerRadius="5">
|
|
||||||
<Grid ColumnDefinitions="Auto,10,*,150,100">
|
<Grid ColumnDefinitions="Auto,10,*,150,100">
|
||||||
|
<Border
|
||||||
|
ClipToBounds="True"
|
||||||
|
CornerRadius="7">
|
||||||
<Image
|
<Image
|
||||||
Grid.RowSpan="3"
|
Grid.RowSpan="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
|
@ -58,6 +63,8 @@
|
||||||
Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
|
Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
|
||||||
Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
|
Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
|
||||||
Source="{Binding Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
|
Source="{Binding Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
<Border
|
<Border
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
Margin="0,0,5,0"
|
Margin="0,0,5,0"
|
||||||
|
|
@ -91,7 +98,7 @@
|
||||||
IsVisible="{Binding HasPlayabilityInfo}"
|
IsVisible="{Binding HasPlayabilityInfo}"
|
||||||
Background="{DynamicResource AppListBackgroundColor}"
|
Background="{DynamicResource AppListBackgroundColor}"
|
||||||
Margin="-1, 0, 0, 0"
|
Margin="-1, 0, 0, 0"
|
||||||
Padding="0">
|
Padding="1.5">
|
||||||
<ToolTip.Tip>
|
<ToolTip.Tip>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
|
|
@ -175,7 +182,7 @@
|
||||||
Text="{ext:Locale GameSpecificConfigurationHeader}"
|
Text="{ext:Locale GameSpecificConfigurationHeader}"
|
||||||
TextAlignment="Start"
|
TextAlignment="Start"
|
||||||
TextWrapping="Wrap"
|
TextWrapping="Wrap"
|
||||||
Foreground="{DynamicResource Warning}" />
|
Foreground="{DynamicResource CustomConfig}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Grid.Column="4"
|
Grid.Column="4"
|
||||||
|
|
@ -203,13 +210,23 @@
|
||||||
<ui:SymbolIcon
|
<ui:SymbolIcon
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Margin="-5,-5,0,0"
|
Margin="-7.5,-7.5,0,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
FontSize="16"
|
FontSize="18"
|
||||||
Foreground="{DynamicResource FavoriteApplicationIconColor}"
|
Foreground="{DynamicResource FavoriteApplicationIconColor}"
|
||||||
IsVisible="{Binding Favorite}"
|
IsVisible="{Binding Favorite}"
|
||||||
Symbol="StarFilled" />
|
Symbol="StarFilled" />
|
||||||
|
<ui:SymbolIcon
|
||||||
|
Grid.Row="0"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="0,-7.5,-7.5,0"
|
||||||
|
HorizontalAlignment="Right"
|
||||||
|
VerticalAlignment="Top"
|
||||||
|
FontSize="18"
|
||||||
|
Foreground="{DynamicResource CustomConfig}"
|
||||||
|
IsVisible="{Binding HasIndependentConfiguration}"
|
||||||
|
Symbol="SettingsFilled" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@
|
||||||
Orientation="Horizontal"
|
Orientation="Horizontal"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center">
|
||||||
<Label Content="{ext:Locale CommonSort}" VerticalAlignment="Center" />
|
|
||||||
<ComboBox SelectedIndex="{Binding SortIndex}" Width="100">
|
<ComboBox SelectedIndex="{Binding SortIndex}" Width="100">
|
||||||
<ComboBoxItem>
|
<ComboBoxItem>
|
||||||
<Label
|
<Label
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,6 @@
|
||||||
Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}"
|
Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}"
|
||||||
TextChanged="TextBox_OnTextChanged"/>
|
TextChanged="TextBox_OnTextChanged"/>
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" Margin="10, 5, 0, 5">
|
<StackPanel Grid.Column="2" Orientation="Horizontal" Margin="10, 5, 0, 5">
|
||||||
<TextBlock
|
|
||||||
Margin="10,0"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
DockPanel.Dock="Right"
|
|
||||||
Text="{ext:Locale CommonSort}" />
|
|
||||||
<DropDownButton
|
<DropDownButton
|
||||||
Width="150"
|
Width="150"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
|
|
@ -102,12 +96,6 @@
|
||||||
<Grid Grid.Row="0" ColumnDefinitions="*,Auto,Auto,Auto" Name="NormalControls">
|
<Grid Grid.Row="0" ColumnDefinitions="*,Auto,Auto,Auto" Name="NormalControls">
|
||||||
<TextBox Name="SearchBoxNormal" Grid.Column="0" Margin="15, 5, 0, 5" HorizontalAlignment="Stretch" Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}" TextChanged="TextBox_OnTextChanged" />
|
<TextBox Name="SearchBoxNormal" Grid.Column="0" Margin="15, 5, 0, 5" HorizontalAlignment="Stretch" Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}" TextChanged="TextBox_OnTextChanged" />
|
||||||
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="10, 5, 5, 5">
|
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="10, 5, 5, 5">
|
||||||
<TextBlock
|
|
||||||
Margin="10,0"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
DockPanel.Dock="Right"
|
|
||||||
Text="{ext:Locale CommonSort}" />
|
|
||||||
<DropDownButton
|
<DropDownButton
|
||||||
Width="150"
|
Width="150"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue