livia-test/Livia/Views/Controls/MosaicImageControl.xaml
2025-03-28 14:31:53 +08:00

57 lines
3.3 KiB
XML

<UserControl x:Class="Livia.Views.Controls.MosaicImageControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:viewModels="clr-namespace:Livia.ViewModels"
d:DataContext="{d:DesignInstance Type=viewModels:MosaicImageControlViewModel}"
mc:Ignorable="d"
d:DesignHeight="450"
d:DesignWidth="800">
<Grid MaxHeight="1024">
<Image RenderOptions.BitmapScalingMode="HighQuality"
VerticalAlignment="Stretch"
Source="{Binding CurrentMosaicImage}" />
<ItemsControl ItemsSource="{Binding RoiCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Visibility="{Binding OtherIsBlinking, Converter={StaticResource InverseBooleanToVisibilityConverter}}">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Visibility="{Binding IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
VerticalAlignment="Stretch"
Source="{Binding MosaicMask}">
<Image.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsBlinking}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="blinking">
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetProperty="Opacity"
AutoReverse="True"
From="1"
To="0"
Duration="0:0:0.5"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="blinking" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>