mirror of
https://github.com/claunia/marechai.git
synced 2026-07-08 17:57:08 +00:00
Handle sentinel GPU and sound synth details in Uno
This commit is contained in:
@@ -64,6 +64,9 @@ public partial class GpuDetailViewModel : ObservableObject, IRegionAware
|
||||
[ObservableProperty]
|
||||
private int _gpuId;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _displayName = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _hasComputers;
|
||||
|
||||
@@ -82,6 +85,9 @@ public partial class GpuDetailViewModel : ObservableObject, IRegionAware
|
||||
[ObservableProperty]
|
||||
private Visibility _showPhotos = Visibility.Collapsed;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showSpecifications = Visibility.Visible;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showVideos = Visibility.Collapsed;
|
||||
|
||||
@@ -169,8 +175,11 @@ public partial class GpuDetailViewModel : ObservableObject, IRegionAware
|
||||
Videos.Clear();
|
||||
ShowPhotos = Visibility.Collapsed;
|
||||
ShowVideos = Visibility.Collapsed;
|
||||
ShowDescription = Visibility.Collapsed;
|
||||
ShowSpecifications = Visibility.Visible;
|
||||
DisplayName = string.Empty;
|
||||
|
||||
if(GpuId <= 0)
|
||||
if(GpuId == 0)
|
||||
{
|
||||
ErrorMessage = _localizer["Invalid GPU ID"].Value;
|
||||
HasError = true;
|
||||
@@ -216,6 +225,9 @@ public partial class GpuDetailViewModel : ObservableObject, IRegionAware
|
||||
displayName = _localizer["Software"];
|
||||
else if(displayName == "DB_NONE") displayName = _localizer["None_female"];
|
||||
|
||||
DisplayName = displayName;
|
||||
ShowSpecifications = IsSentinelGpu(Gpu) ? Visibility.Collapsed : Visibility.Visible;
|
||||
|
||||
_logger.LogInformation("GPU loaded: {Name}, Company: {Company}", displayName, ManufacturerName);
|
||||
|
||||
// Load resolutions
|
||||
@@ -463,6 +475,9 @@ public partial class GpuDetailViewModel : ObservableObject, IRegionAware
|
||||
}
|
||||
}
|
||||
|
||||
static bool IsSentinelGpu(GpuDto? gpu) =>
|
||||
gpu?.Name is "DB_FRAMEBUFFER" or "DB_SOFTWARE" or "DB_NONE";
|
||||
|
||||
/// <summary>
|
||||
/// Navigates back to the GPU list
|
||||
/// </summary>
|
||||
|
||||
@@ -72,12 +72,18 @@ public partial class SoundSynthDetailViewModel : ObservableObject, IRegionAware
|
||||
[ObservableProperty]
|
||||
private string _descriptionHtml = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _displayName = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showDescription = Visibility.Collapsed;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showPhotos = Visibility.Collapsed;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showSpecifications = Visibility.Visible;
|
||||
|
||||
[ObservableProperty]
|
||||
private Visibility _showVideos = Visibility.Collapsed;
|
||||
|
||||
@@ -172,8 +178,11 @@ public partial class SoundSynthDetailViewModel : ObservableObject, IRegionAware
|
||||
Videos.Clear();
|
||||
ShowPhotos = Visibility.Collapsed;
|
||||
ShowVideos = Visibility.Collapsed;
|
||||
ShowDescription = Visibility.Collapsed;
|
||||
ShowSpecifications = Visibility.Visible;
|
||||
DisplayName = string.Empty;
|
||||
|
||||
if(SoundSynthId <= 0)
|
||||
if(SoundSynthId == 0)
|
||||
{
|
||||
ErrorMessage = _localizer["Invalid Sound Synthesizer ID"].Value;
|
||||
HasError = true;
|
||||
@@ -214,8 +223,11 @@ public partial class SoundSynthDetailViewModel : ObservableObject, IRegionAware
|
||||
}
|
||||
}
|
||||
|
||||
DisplayName = LocalizeSpecialSoundSynthName(SoundSynth.Name);
|
||||
ShowSpecifications = IsSentinelSoundSynth(SoundSynth) ? Visibility.Collapsed : Visibility.Visible;
|
||||
|
||||
_logger.LogInformation("Sound Synthesizer loaded: {Name}, Company: {Company}",
|
||||
SoundSynth.Name,
|
||||
DisplayName,
|
||||
ManufacturerName);
|
||||
|
||||
// Load machines and separate into computers and consoles
|
||||
@@ -423,6 +435,14 @@ public partial class SoundSynthDetailViewModel : ObservableObject, IRegionAware
|
||||
}
|
||||
}
|
||||
|
||||
static bool IsSentinelSoundSynth(SoundSynthDto? soundSynth) => soundSynth?.Name == "DB_SOFTWARE";
|
||||
|
||||
string LocalizeSpecialSoundSynthName(string? name) => name switch
|
||||
{
|
||||
"DB_SOFTWARE" => _localizer["Software"],
|
||||
_ => name ?? string.Empty
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Navigates back to the Sound Synthesizer list
|
||||
/// </summary>
|
||||
|
||||
@@ -70,185 +70,186 @@
|
||||
Spacing="16">
|
||||
|
||||
<!-- GPU Name -->
|
||||
<TextBlock Text="{Binding Gpu.Name}"
|
||||
<TextBlock Text="{Binding DisplayName}"
|
||||
FontSize="28"
|
||||
FontWeight="Bold"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<!-- Company/Manufacturer -->
|
||||
<StackPanel Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ManufacturerText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding ManufacturerName}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Model Code -->
|
||||
<StackPanel Visibility="{Binding Gpu.ModelCode, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ModelCodeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.ModelCode}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Introduced Date -->
|
||||
<StackPanel Visibility="{Binding Gpu.Introduced, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=IntroducedText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Introduced}"
|
||||
FontSize="14" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Package -->
|
||||
<StackPanel Visibility="{Binding Gpu.Package, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=PackageText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Package}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Process -->
|
||||
<StackPanel Visibility="{Binding Gpu.Process, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ProcessText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Process}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Process (nm) -->
|
||||
<StackPanel Visibility="{Binding Gpu.ProcessNm, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ProcessNmText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.ProcessNm}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Die Size -->
|
||||
<StackPanel Visibility="{Binding Gpu.DieSize, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=DieSizeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.DieSize}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Transistors -->
|
||||
<StackPanel Visibility="{Binding Gpu.Transistors, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=TransistorsText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Transistors}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Resolutions Section -->
|
||||
<StackPanel Visibility="{Binding Resolutions.Count, Converter={StaticResource ZeroToVisibilityConverter}}"
|
||||
Spacing="8">
|
||||
<StackPanel Orientation="Horizontal"
|
||||
<StackPanel Visibility="{Binding ShowSpecifications}"
|
||||
Spacing="16">
|
||||
<!-- Company/Manufacturer -->
|
||||
<StackPanel Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=SupportedResolutionsText}"
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ManufacturerText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Resolutions.Count}"
|
||||
<TextBlock Text="{Binding ManufacturerName}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Foreground="{ThemeResource SystemAccentColor}" />
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Scrollable Resolutions List -->
|
||||
<ScrollViewer Height="200"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{ThemeResource ControlElevationBorderBrush}"
|
||||
CornerRadius="8">
|
||||
<ItemsRepeater ItemsSource="{Binding Resolutions}"
|
||||
Margin="0">
|
||||
<ItemsRepeater.Layout>
|
||||
<StackLayout Spacing="4" />
|
||||
</ItemsRepeater.Layout>
|
||||
<ItemsRepeater.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Padding="12,8"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="4"
|
||||
Margin="0,4">
|
||||
<StackPanel Spacing="4">
|
||||
<!-- First line: Resolution dimensions or format -->
|
||||
<TextBlock Text="{Binding ResolutionDisplay}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold" />
|
||||
<!-- Second line: Color/palette information -->
|
||||
<TextBlock Text="{Binding ColorDisplay}"
|
||||
FontSize="12"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsRepeater.ItemTemplate>
|
||||
</ItemsRepeater>
|
||||
</ScrollViewer>
|
||||
<!-- Model Code -->
|
||||
<StackPanel Visibility="{Binding Gpu.ModelCode, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ModelCodeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.ModelCode}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Introduced Date -->
|
||||
<StackPanel Visibility="{Binding Gpu.Introduced, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=IntroducedText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Introduced}"
|
||||
FontSize="14" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Package -->
|
||||
<StackPanel Visibility="{Binding Gpu.Package, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=PackageText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Package}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Process -->
|
||||
<StackPanel Visibility="{Binding Gpu.Process, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ProcessText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Process}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Process (nm) -->
|
||||
<StackPanel Visibility="{Binding Gpu.ProcessNm, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ProcessNmText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.ProcessNm}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Die Size -->
|
||||
<StackPanel Visibility="{Binding Gpu.DieSize, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=DieSizeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.DieSize}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Transistors -->
|
||||
<StackPanel Visibility="{Binding Gpu.Transistors, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=TransistorsText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Gpu.Transistors}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Resolutions Section -->
|
||||
<StackPanel Visibility="{Binding Resolutions.Count, Converter={StaticResource ZeroToVisibilityConverter}}"
|
||||
Spacing="8">
|
||||
<StackPanel Orientation="Horizontal"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=SupportedResolutionsText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding Resolutions.Count}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Foreground="{ThemeResource SystemAccentColor}" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Scrollable Resolutions List -->
|
||||
<ScrollViewer Height="200"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{ThemeResource ControlElevationBorderBrush}"
|
||||
CornerRadius="8">
|
||||
<ItemsRepeater ItemsSource="{Binding Resolutions}"
|
||||
Margin="0">
|
||||
<ItemsRepeater.Layout>
|
||||
<StackLayout Spacing="4" />
|
||||
</ItemsRepeater.Layout>
|
||||
<ItemsRepeater.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Padding="12,8"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="4"
|
||||
Margin="0,4">
|
||||
<StackPanel Spacing="4">
|
||||
<TextBlock Text="{Binding ResolutionDisplay}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold" />
|
||||
<TextBlock Text="{Binding ColorDisplay}"
|
||||
FontSize="12"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsRepeater.ItemTemplate>
|
||||
</ItemsRepeater>
|
||||
</ScrollViewer>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Description Section -->
|
||||
|
||||
@@ -70,119 +70,122 @@
|
||||
Spacing="16">
|
||||
|
||||
<!-- Sound Synthesizer Name -->
|
||||
<TextBlock Text="{Binding SoundSynth.Name}"
|
||||
<TextBlock Text="{Binding DisplayName}"
|
||||
FontSize="28"
|
||||
FontWeight="Bold"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<!-- Company/Manufacturer -->
|
||||
<StackPanel Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ManufacturerText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding ManufacturerName}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
<StackPanel Visibility="{Binding ShowSpecifications}"
|
||||
Spacing="16">
|
||||
<!-- Company/Manufacturer -->
|
||||
<StackPanel Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ManufacturerText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding ManufacturerName}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Model Code -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.ModelCode, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ModelCodeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.ModelCode}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
<!-- Model Code -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.ModelCode, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=ModelCodeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.ModelCode}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Introduced Date -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Introduced, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=IntroducedText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Introduced}"
|
||||
FontSize="14" />
|
||||
</StackPanel>
|
||||
<!-- Introduced Date -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Introduced, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=IntroducedText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Introduced}"
|
||||
FontSize="14" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Voices -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Voices, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=VoicesText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Voices}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
<!-- Voices -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Voices, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=VoicesText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Voices}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Frequency -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Frequency, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=FrequencyText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Frequency}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
<!-- Frequency -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Frequency, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=FrequencyText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Frequency}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Depth -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Depth, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=DepthText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Depth}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
<!-- Depth -->
|
||||
<StackPanel Visibility="{Binding SoundSynth.Depth, Converter={StaticResource ObjectToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=DepthText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SoundSynth.Depth}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Type -->
|
||||
<StackPanel Visibility="{Binding SynthTypeDisplay, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=TypeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SynthTypeDisplay}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
<!-- Type -->
|
||||
<StackPanel Visibility="{Binding SynthTypeDisplay, Converter={StaticResource StringToVisibilityConverter}}"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="12"
|
||||
Spacing="8">
|
||||
<TextBlock
|
||||
Text="{Binding Source={StaticResource Strings}, Path=TypeText}"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{ThemeResource SystemBaseMediumColor}" />
|
||||
<TextBlock Text="{Binding SynthTypeDisplay}"
|
||||
FontSize="14"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Description Section -->
|
||||
|
||||
Reference in New Issue
Block a user