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

148 lines
9.4 KiB
XML

<UserControl x:Class="Livia.Views.Controls.ImageRotationViewerBorderlessControl"
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"
xmlns:controls="clr-namespace:Livia.Views.Controls"
mc:Ignorable="d"
Focusable="True"
PreviewMouseLeftButtonDown="OnPreviewMouseDown"
PreviewMouseLeftButtonUp="OnPreviewMouseUp"
MouseEnter="OnMouseEnter"
MouseLeave="OnMouseLeave"
MouseMove="OnMouseMove"
PreviewKeyDown="OnPreviewKeyDown"
d:DataContext="{d:DesignInstance Type=viewModels:ImageRotationViewerControlViewModel}"
xmlns:attachedProperties="clr-namespace:Livia.Views.AttachedProperties"
d:Background="{StaticResource BackgroundColorBrush}"
d:DesignHeight="300"
d:DesignWidth="200" Loaded="ImageRotationViewerBorderlessControl_OnLoaded">
<Border Background="Transparent"
PreviewMouseWheel="OnPreviewMouseWheel">
<Grid Margin="8, 0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Border Grid.Row="0"
Background="Black">
<Grid>
<Grid.ContextMenu>
<ContextMenu Visibility="{Binding StructureImageSeries.WindowCenterModifiable, Converter={StaticResource BooleanToVisibilityConverter}}">
<MenuItem Header="{StaticResource DefaultWindowLevelButtonTest}"
Click="DefaultWindowLevelButtonClick" />
</ContextMenu>
</Grid.ContextMenu>
<Image VerticalAlignment="Stretch"
RenderOptions.BitmapScalingMode="HighQuality"
Source="{Binding StructureImageSeries.CurrentBitmapImage}" />
<ItemsControl ItemsSource="{Binding CurrentRoiCollection}">
<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 MaskImageSeries.CurrentBitmapImage}">
<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>
<StackPanel Orientation="Horizontal"
Margin="10, 0"
VerticalAlignment="Bottom">
<TextBlock Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{Binding CurrentIndex}"
Style="{StaticResource MaterialDesignBody1TextBlock}"
d:Text="1" />
<TextBlock Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="/"
Style="{StaticResource MaterialDesignBody1TextBlock}" />
<TextBlock Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{Binding MaxIndex}"
Style="{StaticResource MaterialDesignBody1TextBlock}"
d:Text="20" />
</StackPanel>
<controls:ColorBarControl DataContext="{Binding ColorBarControlViewModel}" />
</Grid>
</Border>
<Border Grid.Row="1">
<Grid>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<TextBlock Background="{StaticResource PrimaryColorBrush}"
Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{Binding DisplayName}"
Style="{StaticResource MaterialDesignBody1TextBlock}"
d:Text="灌注图" />
<Button Name="Button" Style="{StaticResource LiviaPrimaryTinyIconButton}"
Margin="2, 2, 0, 0"
Foreground="{StaticResource White1Brush}"
attachedProperties:IconKindProperties.IconKind="HelpCircleOutline"
VerticalAlignment="Center"
Visibility="{Binding ShowHelperTip, Converter={StaticResource BooleanToVisibilityConverter}}"
ToolTip="{StaticResource ImageRotationViewerTip}" >
</Button>
</StackPanel>
<TextBlock Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
Margin="5, 0"
HorizontalAlignment="Left"
Text="R"
Visibility="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Grid}, Mode=FindAncestor, AncestorLevel=2}, Converter={StaticResource BooleanToVisibilityConverter}}"
d:Visibility="Visible"
Style="{StaticResource MaterialDesignHeadline5TextBlock}" />
<TextBlock Foreground="{StaticResource White1Brush}"
VerticalAlignment="Center"
Margin="5, 0"
HorizontalAlignment="Right"
Text="L"
Visibility="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Grid}, Mode=FindAncestor, AncestorLevel=2}, Converter={StaticResource BooleanToVisibilityConverter}}"
d:Visibility="Visible"
Style="{StaticResource MaterialDesignHeadline5TextBlock}" />
</Grid>
</Border>
</Grid>
</Border>
</UserControl>