Files
HandyControl/HandyControl/Controls/Window/ImageBrowser.xaml
T
2018-09-11 12:00:52 +08:00

81 lines
6.6 KiB
XML

<controls:WindowBorderless x:Class="HandyControl.Controls.ImageBrowser"
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:controls="clr-namespace:HandyControl.Controls"
mc:Ignorable="d"
x:Name="UserControlMain"
Loaded="ImageBrowser_OnLoaded"
Background="Transparent"
d:DesignHeight="500"
MinWidth="400"
MinHeight="250"
d:DesignWidth="800"
BorderThickness="1"
BorderBrush="Black"
WindowStartupLocation="CenterScreen"
AllowsTransparency="True"
WindowStyle="None">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid x:Name="CanvasMain" ClipToBounds="True" MouseLeftButtonDown="CanvasBack_OnMouseLeftButtonDown" Grid.RowSpan="2" Background="#dd000000">
<Border HorizontalAlignment="Left" VerticalAlignment="Top" Height="{Binding ImageHeight,ElementName=UserControlMain}" Width="{Binding ImageWidth,ElementName=UserControlMain}" Margin="{Binding ImageMargin,ElementName=UserControlMain}">
<Image Name="ImageMain" RenderTransformOrigin="0.5,0.5" MouseLeftButtonDown="ImageMain_OnMouseLeftButtonDown" Source="{Binding ImageSource,ElementName=UserControlMain}">
<Image.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="{Binding ImageRotate,ElementName=UserControlMain}"/>
</TransformGroup>
</Image.LayoutTransform>
</Image>
</Border>
</Grid>
<Border MouseMove="CanvasSmallImg_OnMouseMove" MouseLeftButtonUp="CanvasSmallImg_OnMouseLeftButtonUp" MouseLeftButtonDown="CanvasSmallImg_OnMouseLeftButtonDown" MouseLeave="CanvasSmallImg_OnMouseLeave" Visibility="{Binding ShowSmallImg,ElementName=UserControlMain,Converter={StaticResource Boolean2VisibilityConverter}}" Grid.Row="0" Grid.RowSpan="2" Width="252" Height="162" HorizontalAlignment="Right" VerticalAlignment="Bottom" Background="#44000000" BorderBrush="{StaticResource BorderBrush}" BorderThickness="1">
<Canvas ClipToBounds="True" Name="CanvasSmallImg" MaxWidth="250" MaxHeight="160">
<Border UseLayoutRounding="True" Name="BorderMove" Background="Transparent" Width="50" Height="70" BorderThickness="1" BorderBrush="Black">
<Border BorderThickness="1" BorderBrush="White">
</Border>
</Border>
</Canvas>
</Border>
<Border UseLayoutRounding="True" Name="BorderBottom" Opacity="0" CornerRadius="4,4,0,0" Grid.Row="1" HorizontalAlignment="Center" Background="#44000000">
<StackPanel Margin="30,10" VerticalAlignment="Center" Orientation="Horizontal">
<Button Click="ButtonSave_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource SaveGeometry}" Padding="3"></Button>
<Button Click="ButtonWindowsOpen_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource WindowsGeometry}" Padding="3"></Button>
<Border Margin="10,2" Style="{StaticResource BorderHorizontallySplitter}"></Border>
<Button Click="ButtonReduce_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource ReduceGeometry}" Padding="3"></Button>
<TextBlock Margin="6,0" Text="{Binding ScaleStr,ElementName=UserControlMain}" Style="{StaticResource TextBlockSubTitle}" Foreground="{DynamicResource TextIconBrush}"></TextBlock>
<Button Click="ButtonEnlarge_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource EnlargeGeometry}" Padding="3"></Button>
<Button Background="Transparent" Click="ButtonActual_OnClick" Margin="6,0" Style="{StaticResource ButtonOpacityStyle}" Foreground="White">
<Border BorderThickness="1" BorderBrush="White" Padding="2">
<TextBlock Text="1:1"></TextBlock>
</Border>
</Button>
<Border Margin="10,2" Style="{StaticResource BorderHorizontallySplitter}"></Border>
<Button Click="ButtonRotateLeft_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource RotateLeftGeometry}" Padding="3"></Button>
<Button Click="ButtonRotateRight_OnClick" Margin="6,0" Style="{StaticResource ButtonIconTransparent}" controls:IconElement.Geometry="{StaticResource RotateLeftGeometry}" Padding="3" RenderTransformOrigin="0.5,0.5">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="-1"/>
</TransformGroup>
</Button.RenderTransform>
</Button>
<ToggleButton Foreground="{StaticResource TextIconBrush}" IsChecked="{Binding IsFullScreen,ElementName=UserControlMain}" Click="ButtonScreenChange_OnClick" Margin="6,0" Style="{StaticResource ToggleButtonIconTransparent}" controls:IconSwitchElement.Geometry="{StaticResource FullScreenGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource FullScreenReturnGeometry}" Padding="3"></ToggleButton>
</StackPanel>
</Border>
<Grid Name="GridTop" Opacity="0" Background="#44000000" MouseLeftButtonDown="CanvasBack_OnMouseLeftButtonDown" VerticalAlignment="Top" Grid.Row="0">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock Text="{Binding ImgPath,ElementName=UserControlMain}" Foreground="White" Margin="10,0,0,0"></TextBlock>
<TextBlock Text="{Binding ImgSize,ElementName=UserControlMain,Converter={StaticResource Long2FileSizeConverter}}" Foreground="White" Margin="30,0,0,0"></TextBlock>
</StackPanel>
<Button WindowChrome.IsHitTestVisibleInChrome="True" Click="ButtonClose_OnClick" Background="Red" Grid.Row="0" Padding="14" controls:IconElement.Geometry="{StaticResource DeleteGeometry}" Style="{StaticResource ButtonIconTransparent}" HorizontalAlignment="Right" VerticalAlignment="Top" Width="40" Height="40"></Button>
</Grid>
</Grid>
</controls:WindowBorderless>