[GUI] Replace DataGrids with DataGridTemplateColumns for improved styling in ImageInfo.xaml

This commit is contained in:
2025-10-25 18:41:21 +01:00
parent ca17de372f
commit 20ab4cfbe7
2 changed files with 361 additions and 69 deletions

View File

@@ -36,7 +36,7 @@
xmlns:localization="clr-namespace:Aaru.Localization;assembly=Aaru.Localization" xmlns:localization="clr-namespace:Aaru.Localization;assembly=Aaru.Localization"
x:Class="Aaru.Gui.App"> x:Class="Aaru.Gui.App">
<Application.Styles> <Application.Styles>
<FluentTheme /> <FluentTheme /> <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml" />
<!-- TODO: Abandoned project need to find replacement <!-- TODO: Abandoned project need to find replacement
<StyleInclude Source="resm:OxyPlot.Avalonia.Themes.Default.xaml?assembly=OxyPlot.Avalonia" /> <StyleInclude Source="resm:OxyPlot.Avalonia.Themes.Default.xaml?assembly=OxyPlot.Avalonia" />
--> -->

View File

@@ -158,23 +158,91 @@
</TabItem.Header> </TabItem.Header>
<DataGrid ItemsSource="{Binding Sessions, Mode=OneWay}" <DataGrid ItemsSource="{Binding Sessions, Mode=OneWay}"
IsVisible="{Binding !!Sessions.Count, Mode=OneWay}" IsVisible="{Binding !!Sessions.Count, Mode=OneWay}"
IsReadOnly="True"> IsReadOnly="True"
Height="400"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Session}" <DataGridTemplateColumn Width="*">
Binding="{Binding SessionSequence, Mode=OneWay}" <DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_First_track}" <controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Session}"
Binding="{Binding StartTrack, Mode=OneWay}" Padding="5"
Width="Auto" /> VerticalAlignment="Center" />
<DataGridTextColumn Header="{x:Static localization:Core.Title_Last_track}" </DataTemplate>
Binding="{Binding EndTrack, Mode=OneWay}" </DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataGridTemplateColumn.CellTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Start}" <DataTemplate>
Binding="{Binding StartSector, Mode=OneWay}" <TextBlock Text="{Binding Sequence, Mode=OneWay}"
Width="Auto" /> Padding="5"
<DataGridTextColumn Header="{x:Static localization:Core.Title_End}" VerticalAlignment="Center" />
Binding="{Binding EndSector, Mode=OneWay}" </DataTemplate>
Width="Auto" /> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_First_track}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StartTrack, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Last_track}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding EndTrack, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Start}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StartSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_End}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding EndSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
</TabItem> </TabItem>
@@ -184,32 +252,139 @@
</TabItem.Header> </TabItem.Header>
<DataGrid ItemsSource="{Binding Tracks, Mode=OneWay}" <DataGrid ItemsSource="{Binding Tracks, Mode=OneWay}"
IsVisible="{Binding !!Tracks.Count, Mode=OneWay}" IsVisible="{Binding !!Tracks.Count, Mode=OneWay}"
IsReadOnly="True"> IsReadOnly="True"
Height="400"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Track}" <DataGridTemplateColumn Width="*">
Binding="{Binding Sequence, Mode=OneWay}" <DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataTemplate>
<DataGridTextColumn Header="{x:Static localization:UI.Title_Type}" <controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Track}"
Binding="{Binding Type, Mode=OneWay}" Padding="5"
Width="Auto" /> VerticalAlignment="Center" />
<DataGridTextColumn Header="{x:Static localization:Core.Title_Bps}" </DataTemplate>
Binding="{Binding BytesPerSector, Mode=OneWay}" </DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataGridTemplateColumn.CellTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Raw_bps}" <DataTemplate>
Binding="{Binding RawBytesPerSector, Mode=OneWay}" <TextBlock Text="{Binding Sequence, Mode=OneWay}"
Width="Auto" /> Padding="5"
<DataGridTextColumn Header="{x:Static localization:Core.Title_Subchannel}" VerticalAlignment="Center" />
Binding="{Binding SubchannelType, Mode=OneWay}" </DataTemplate>
Width="Auto" /> </DataGridTemplateColumn.CellTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Pregap}" </DataGridTemplateColumn>
Binding="{Binding Pregap, Mode=OneWay}" <DataGridTemplateColumn Width="*">
Width="Auto" /> <DataGridTemplateColumn.HeaderTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_Start}" <DataTemplate>
Binding="{Binding StartSector, Mode=OneWay}" <controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Type}"
Width="Auto" /> Padding="5"
<DataGridTextColumn Header="{x:Static localization:Core.Title_End}" VerticalAlignment="Center" />
Binding="{Binding EndSector, Mode=OneWay}" </DataTemplate>
Width="Auto" /> </DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Bps}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding BytesPerSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Raw_bps}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RawBytesPerSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Subchannel}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SubchannelType, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Pregap}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Pregap, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Start}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StartSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_End}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding EndSector, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
</TabItem> </TabItem>
@@ -221,33 +396,150 @@
IsVisible="{Binding !!DumpHardwareList.Count, Mode=OneWay}" IsVisible="{Binding !!DumpHardwareList.Count, Mode=OneWay}"
IsReadOnly="True"> IsReadOnly="True">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="{x:Static localization:UI.Title_Manufacturer}" <DataGridTemplateColumn Width="*">
Binding="{Binding Manufacturer, Mode=OneWay}" <DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataTemplate>
<DataGridTextColumn Header="{x:Static localization:UI.Title_Model}" <controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Manufacturer}"
Binding="{Binding Model, Mode=OneWay}" Padding="5"
Width="Auto" /> VerticalAlignment="Center" />
<DataGridTextColumn Header="{x:Static localization:UI.Title_Revision}" </DataTemplate>
Binding="{Binding Revision, Mode=OneWay}" </DataGridTemplateColumn.HeaderTemplate>
Width="Auto" /> <DataGridTemplateColumn.CellTemplate>
<DataGridTextColumn Header="{x:Static localization:UI.Serial}" <DataTemplate>
Binding="{Binding Serial, Mode=OneWay}" <TextBlock Text="{Binding Manufacturer, Mode=OneWay}"
Width="Auto" /> Padding="5"
<DataGridTextColumn Header="{x:Static localization:UI.Title_Software}" VerticalAlignment="Center" />
Binding="{Binding SoftwareName, Mode=OneWay}" </DataTemplate>
Width="Auto" /> </DataGridTemplateColumn.CellTemplate>
<DataGridTextColumn Header="{x:Static localization:UI.Title_Version}" </DataGridTemplateColumn>
Binding="{Binding SoftwareVersion, Mode=OneWay}" <DataGridTemplateColumn Width="*">
Width="Auto" /> <DataGridTemplateColumn.HeaderTemplate>
<DataGridTextColumn Header="{x:Static localization:UI.Title_Operating_system}" <DataTemplate>
Binding="{Binding OperatingSystem, Mode=OneWay}" <controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Model}"
Width="Auto" /> Padding="5"
<DataGridTextColumn Header="{x:Static localization:Core.Title_Start}" VerticalAlignment="Center" />
Binding="{Binding TrackStartSector, Mode=OneWay}" </DataTemplate>
Width="Auto" /> </DataGridTemplateColumn.HeaderTemplate>
<DataGridTextColumn Header="{x:Static localization:Core.Title_End}" <DataGridTemplateColumn.CellTemplate>
Binding="{Binding TrackEndSector, Mode=OneWay}" <DataTemplate>
Width="Auto" /> <TextBlock Text="{Binding Model, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Revision}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Revision, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Serial}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Serial, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Software}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SoftwareName, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Version}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SoftwareVersion, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Operating_system}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding OperatingSystem, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_Start}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Start, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<controls:SpectreTextBlock Text="{x:Static localization:Core.Title_End}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding End, Mode=OneWay}"
Padding="5"
VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
</TabItem> </TabItem>