219 lines
14 KiB
XML
219 lines
14 KiB
XML
<UserControl x:Class="Livia.Views.Controls.RoiExpanderControl"
|
|
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:attachedProperties="clr-namespace:Livia.Views.AttachedProperties"
|
|
xmlns:converters="clr-namespace:Livia.Views.Converters"
|
|
xmlns:controls="clr-namespace:Livia.Views.Controls"
|
|
mc:Ignorable="d"
|
|
d:DataContext="{d:DesignInstance Type=viewModels:RoiExpanderControlViewModel}"
|
|
d:DesignWidth="800"
|
|
d:DesignHeight="1500"
|
|
d:Background="{StaticResource PrimaryColorBrush}">
|
|
<UserControl.Resources>
|
|
<converters:RoiTwoColumnModeToStringConverter x:Key="RoiTwoColumnModeToStringConverter" />
|
|
<converters:UnfoldButtonStateToStringConverter x:Key="UnfoldButtonStateToStringConverter" />
|
|
<converters:RoiLocationDisplayModeToStringConverter x:Key="RoiLocationDisplayModeToStringConverter" />
|
|
<converters:InverseBooleanToVisibilityCollapsedConverter x:Key="InverseBooleanToVisibilityCollapsedConverter" />
|
|
<converters:NullableToVisibilityCollapsedConverter x:Key="NullableToVisibilityCollapsedConverter" />
|
|
</UserControl.Resources>
|
|
<StackPanel VerticalAlignment="Top">
|
|
<Expander HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
Style="{StaticResource MaterialDesignExpander}"
|
|
Margin="20, 0, 0, 0"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Background="Transparent">
|
|
<Expander.Header>
|
|
<Border BorderBrush="{StaticResource PrimaryTextColorBrush}"
|
|
HorizontalAlignment="Stretch"
|
|
BorderThickness="1">
|
|
<DockPanel Margin="16, 0">
|
|
<StackPanel DockPanel.Dock="Left"
|
|
Orientation="Horizontal">
|
|
<CheckBox IsChecked="{Binding IsChecked}"
|
|
d:IsChecked="False"
|
|
Background="{StaticResource PrimaryTextColorBrush}" />
|
|
<Ellipse Fill="{Binding Color}"
|
|
Margin="5, 0"
|
|
Height="8"
|
|
Width="8" />
|
|
<TextBlock Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
Text="{Binding Name}"
|
|
d:Text="左侧A区" />
|
|
</StackPanel>
|
|
<TextBlock Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
DockPanel.Dock="Right"
|
|
HorizontalAlignment="Right"
|
|
Text="{Binding Volume, StringFormat={}{0:N3}ml}"
|
|
d:Text="9.851" />
|
|
</DockPanel>
|
|
</Border>
|
|
</Expander.Header>
|
|
<StackPanel>
|
|
<StackPanel Orientation="Vertical"
|
|
VerticalAlignment="Top"
|
|
Margin="25, 0, 65, 0">
|
|
<TextBlock Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
Margin="30, 0, 0, 0"
|
|
Text="{StaticResource NoRoiLocationDataMessage}"
|
|
Visibility="{Binding NoLocationData, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
|
<DockPanel>
|
|
<StackPanel Orientation="Horizontal"
|
|
Visibility="{Binding ShowButtons, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
DockPanel.Dock="Left">
|
|
<Button Style="{StaticResource LiviaPrimaryIconButton}"
|
|
Margin="5, 0"
|
|
Click="LocateRoiButtonOnClick"
|
|
Visibility="{Binding MaskImageSeries.MaskJumpToIndex, Converter={StaticResource NullableToVisibilityCollapsedConverter}}"
|
|
HorizontalAlignment="Right"
|
|
attachedProperties:IconKindProperties.IconKind="CrosshairsGps"
|
|
ToolTip="{StaticResource LocateRoiButtonText}">
|
|
</Button>
|
|
<Button Style="{StaticResource LiviaPrimaryIconButton}"
|
|
Margin="5, 0"
|
|
Click="ShowBoundaryButtonOnClick"
|
|
Visibility="{Binding MaskImageSeries.MaskJumpToIndex, Converter={StaticResource NullableToVisibilityCollapsedConverter}}"
|
|
HorizontalAlignment="Right"
|
|
attachedProperties:IconKindProperties.IconKind="HeadOutline"
|
|
ToolTip="{StaticResource ShowBoundaryButtonText}">
|
|
</Button>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal"
|
|
DockPanel.Dock="Right"
|
|
Visibility="{Binding ShowButtons, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
HorizontalAlignment="Right">
|
|
<Button Style="{StaticResource LiviaPrimaryTextIconButton}"
|
|
Margin="5, 0"
|
|
Click="ToggleUnfoldButtonOnClick"
|
|
HorizontalAlignment="Right"
|
|
attachedProperties:IconKindProperties.IconKind="UnfoldMoreVertical"
|
|
attachedProperties:StringItemProperties.ItemName="{Binding UnfoldButtonState, Converter={StaticResource UnfoldButtonStateToStringConverter} }" />
|
|
<Button Style="{StaticResource LiviaPrimaryTextIconButton}"
|
|
Visibility="{Binding IsTwoSided, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
Margin="5, 0"
|
|
Click="ToggleTwoColumnModeButtonOnClick"
|
|
HorizontalAlignment="Right"
|
|
attachedProperties:IconKindProperties.IconKind="ViewColumn"
|
|
attachedProperties:StringItemProperties.ItemName="{Binding TwoColumnMode, Converter={StaticResource RoiTwoColumnModeToStringConverter} }" />
|
|
<Button Style="{StaticResource LiviaPrimaryTextIconButton}"
|
|
Margin="5, 0"
|
|
Click="ToggleRoiLocationDisplayModeButtonOnClick"
|
|
HorizontalAlignment="Right"
|
|
attachedProperties:IconKindProperties.IconKind="SwapHorizontal"
|
|
attachedProperties:StringItemProperties.ItemName="{Binding CurrentRoiLocationDisplayMode, Converter={StaticResource RoiLocationDisplayModeToStringConverter} }" />
|
|
</StackPanel>
|
|
</DockPanel>
|
|
<ItemsControl d:Visibility="Collapsed"
|
|
ItemsSource="{Binding Locations}"
|
|
Visibility="{Binding TwoColumnMode, Converter={StaticResource InverseBooleanToVisibilityCollapsedConverter}}"
|
|
ScrollViewer.CanContentScroll="True"
|
|
VerticalAlignment="Top"
|
|
VirtualizingStackPanel.IsVirtualizing="True">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<controls:RoiLocationDataControl DataContext="{Binding }" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
<Grid d:Visibility="Collapsed"
|
|
Visibility="{Binding TwoColumnMode, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Grid.Column="0"
|
|
Grid.Row="0"
|
|
Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
Text="{StaticResource Left}"
|
|
HorizontalAlignment="Stretch"
|
|
TextAlignment="Center"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Background="{StaticResource CalendarBackground}" />
|
|
<TextBlock Grid.Column="1"
|
|
Grid.Row="0"
|
|
Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
Text="{StaticResource BothSides}"
|
|
HorizontalAlignment="Stretch"
|
|
TextAlignment="Center"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Background="{StaticResource CalendarBackground}" />
|
|
<TextBlock Grid.Column="2"
|
|
Grid.Row="0"
|
|
Style="{StaticResource MaterialDesignBody1TextBlock}"
|
|
Text="{StaticResource Right}"
|
|
HorizontalAlignment="Stretch"
|
|
TextAlignment="Center"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Background="{StaticResource CalendarBackground}" />
|
|
<Grid Grid.Column="0"
|
|
Grid.Row="1"
|
|
Margin="0, 0, 15, 0">
|
|
<ItemsControl ItemsSource="{Binding LeftLocations}"
|
|
d:ItemsSource="{d:SampleData}"
|
|
ScrollViewer.CanContentScroll="True"
|
|
VerticalAlignment="Top"
|
|
VirtualizingStackPanel.IsVirtualizing="True">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<controls:RoiLocationDataControl DataContext="{Binding }" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Grid>
|
|
<Grid Grid.Column="1"
|
|
Grid.Row="1"
|
|
Margin="15,0">
|
|
<ItemsControl ItemsSource="{Binding TwoSideLocations}"
|
|
d:ItemsSource="{d:SampleData}"
|
|
ScrollViewer.CanContentScroll="True"
|
|
VerticalAlignment="Top"
|
|
VirtualizingStackPanel.IsVirtualizing="True">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<controls:RoiLocationDataControl DataContext="{Binding }" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Grid>
|
|
<Grid Grid.Column="2"
|
|
Grid.Row="1"
|
|
Margin="15, 0, 0, 0">
|
|
<ItemsControl ItemsSource="{Binding RightLocations}"
|
|
d:ItemsSource="{d:SampleData}"
|
|
ScrollViewer.CanContentScroll="True"
|
|
VerticalAlignment="Top"
|
|
VirtualizingStackPanel.IsVirtualizing="True">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<controls:RoiLocationDataControl DataContext="{Binding }" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Grid>
|
|
</Grid>
|
|
</StackPanel>
|
|
<StackPanel d:Visibility="Collapsed">
|
|
<ItemsControl ItemsSource="{Binding SubGroups}"
|
|
ScrollViewer.CanContentScroll="True"
|
|
VerticalAlignment="Top"
|
|
VirtualizingStackPanel.IsVirtualizing="True">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<controls:RoiExpanderGroupControl DataContext="{Binding }" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Expander>
|
|
</StackPanel>
|
|
</UserControl>
|