feat: safe image loading

add AsyncImageViewModel that loading images sequentially
This commit is contained in:
2026-03-05 09:32:24 +03:00
parent fe46722d55
commit d7c0883e6b
3 changed files with 112 additions and 27 deletions
@@ -272,14 +272,33 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<core:ZoomPanImage
<Grid
Grid.Row="0"
Grid.RowSpan="11"
Grid.Column="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Black"
ImageSource="{Binding Key}" />
Grid.Column="0">
<core:ZoomPanImage
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Black"
ImageSource="{Binding Image}"
IsVisible="{Binding IsLoading, Converter={x:Static BoolConverters.Not}}" />
<StackPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
IsVisible="{Binding IsLoading}">
<ProgressBar IsIndeterminate="True" />
<TextBlock
HorizontalAlignment="Center"
FontSize="18"
Text="Изображение загружается" />
</StackPanel>
</Grid>
<TextBlock
Grid.Row="0"
@@ -291,7 +310,7 @@
Grid.Column="1"
Classes="singleline"
IsReadOnly="True"
Text="{Binding Value.Id}" />
Text="{Binding ImageRecord.Id}" />
<TextBlock
Grid.Row="2"
@@ -303,7 +322,7 @@
Grid.Column="1"
Classes="singleline"
IsReadOnly="True"
Text="{Binding Value.ImagePath}" />
Text="{Binding ImageRecord.ImagePath}" />
<TextBlock
Grid.Row="4"
@@ -315,7 +334,7 @@
Grid.Column="1"
Classes="singleline"
IsReadOnly="True"
Text="{Binding Value.VisibleIntensity}" />
Text="{Binding ImageRecord.VisibleIntensity}" />
<TextBlock
Grid.Row="6"
@@ -327,7 +346,7 @@
Grid.Column="1"
Classes="singleline"
IsReadOnly="True"
Text="{Binding Value.Uv365Intensity}" />
Text="{Binding ImageRecord.Uv365Intensity}" />
<TextBlock
Grid.Row="8"
@@ -339,7 +358,7 @@
Grid.Column="1"
Classes="singleline"
IsReadOnly="True"
Text="{Binding Value.Uv254Intensity}" />
Text="{Binding ImageRecord.Uv254Intensity}" />
</Grid>
@@ -389,12 +408,19 @@
</TextBlock>
<TextBlock
HorizontalAlignment="Center"
<StackPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
FontSize="18"
IsVisible="{Binding ImagesIsCapturing}"
Text="{Binding ImagesCapturingProgress}" />
IsVisible="{Binding ImagesIsCapturing}">
<ProgressBar IsIndeterminate="True" />
<TextBlock
HorizontalAlignment="Center"
FontSize="18"
Text="{Binding ImagesCapturingProgress}" />
</StackPanel>
</Grid>