Screenshot.xaml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls">
  4. <Style x:Key="MaskRect4ScreenshotStyle" TargetType="Rectangle">
  5. <Setter Property="IsHitTestVisible" Value="False"/>
  6. <Setter Property="Fill" Value="{DynamicResource DarkOpacityBrush}"/>
  7. <Setter Property="HorizontalAlignment" Value="Left"/>
  8. <Setter Property="VerticalAlignment" Value="Top"/>
  9. </Style>
  10. <Style x:Key="SnapRect4ScreenshotStyle" TargetType="Rectangle">
  11. <Setter Property="Height" Value="5"/>
  12. <Setter Property="Width" Value="5"/>
  13. <Setter Property="Fill" Value="DodgerBlue"/>
  14. <Setter Property="HorizontalAlignment" Value="Left"/>
  15. <Setter Property="VerticalAlignment" Value="Top"/>
  16. <Setter Property="Visibility" Value="Collapsed"/>
  17. <Style.Triggers>
  18. <Trigger Property="hc:TipElement.Placement" Value="LeftTop">
  19. <Setter Property="Margin" Value="-3, -3, 0, 0"/>
  20. <Setter Property="HorizontalAlignment" Value="Left"/>
  21. <Setter Property="VerticalAlignment" Value="Top"/>
  22. </Trigger>
  23. <Trigger Property="hc:TipElement.Placement" Value="Top">
  24. <Setter Property="Margin" Value="0, -3, 0, 0"/>
  25. <Setter Property="HorizontalAlignment" Value="Center"/>
  26. <Setter Property="VerticalAlignment" Value="Top"/>
  27. </Trigger>
  28. <Trigger Property="hc:TipElement.Placement" Value="RightTop">
  29. <Setter Property="Margin" Value="0, -3, -3, 0"/>
  30. <Setter Property="HorizontalAlignment" Value="Right"/>
  31. <Setter Property="VerticalAlignment" Value="Top"/>
  32. </Trigger>
  33. <Trigger Property="hc:TipElement.Placement" Value="Right">
  34. <Setter Property="Margin" Value="0, 0, -3, 0"/>
  35. <Setter Property="HorizontalAlignment" Value="Right"/>
  36. <Setter Property="VerticalAlignment" Value="Center"/>
  37. </Trigger>
  38. <Trigger Property="hc:TipElement.Placement" Value="RightBottom">
  39. <Setter Property="Margin" Value="0, 0, -3, -3"/>
  40. <Setter Property="HorizontalAlignment" Value="Right"/>
  41. <Setter Property="VerticalAlignment" Value="Bottom"/>
  42. </Trigger>
  43. <Trigger Property="hc:TipElement.Placement" Value="Bottom">
  44. <Setter Property="Margin" Value="0, 0, 0, -3"/>
  45. <Setter Property="HorizontalAlignment" Value="Center"/>
  46. <Setter Property="VerticalAlignment" Value="Bottom"/>
  47. </Trigger>
  48. <Trigger Property="hc:TipElement.Placement" Value="LeftBottom">
  49. <Setter Property="Margin" Value="-3, 0, 0, -3"/>
  50. <Setter Property="HorizontalAlignment" Value="Left"/>
  51. <Setter Property="VerticalAlignment" Value="Bottom"/>
  52. </Trigger>
  53. <Trigger Property="hc:TipElement.Placement" Value="Left">
  54. <Setter Property="Margin" Value="-3, 0, 0, 0"/>
  55. <Setter Property="HorizontalAlignment" Value="Left"/>
  56. <Setter Property="VerticalAlignment" Value="Center"/>
  57. </Trigger>
  58. <DataTrigger Binding="{Binding IsSelecting}" Value="True">
  59. <Setter Property="Visibility" Value="Visible"/>
  60. </DataTrigger>
  61. <DataTrigger Binding="{Binding IsDrawing}" Value="True">
  62. <Setter Property="Visibility" Value="Visible"/>
  63. </DataTrigger>
  64. </Style.Triggers>
  65. </Style>
  66. <Style x:Key="TargetArea4ScreenshotStyle" TargetType="Border">
  67. <Setter Property="IsHitTestVisible" Value="False"/>
  68. <Setter Property="BorderThickness" Value="5"/>
  69. <Setter Property="BorderBrush" Value="DodgerBlue"/>
  70. <Setter Property="Background" Value="Transparent"/>
  71. <Setter Property="HorizontalAlignment" Value="Left"/>
  72. <Setter Property="VerticalAlignment" Value="Top"/>
  73. <Style.Triggers>
  74. <DataTrigger Binding="{Binding IsSelecting}" Value="True">
  75. <Setter Property="BorderThickness" Value="1"/>
  76. </DataTrigger>
  77. <DataTrigger Binding="{Binding IsDrawing}" Value="True">
  78. <Setter Property="IsHitTestVisible" Value="True"/>
  79. <Setter Property="BorderThickness" Value="1"/>
  80. </DataTrigger>
  81. </Style.Triggers>
  82. </Style>
  83. <Style x:Key="Window4ScreenshotStyle" TargetType="hc:ScreenshotWindow">
  84. <Setter Property="UseLayoutRounding" Value="True"/>
  85. <Setter Property="WindowStyle" Value="None"/>
  86. <Setter Property="WindowState" Value="Maximized"/>
  87. <Setter Property="Topmost" Value="True"/>
  88. <Setter Property="ResizeMode" Value="NoResize"/>
  89. <Setter Property="Background" Value="Transparent"/>
  90. <Setter Property="hc:WindowAttach.IgnoreAltF4" Value="True"/>
  91. <Setter Property="hc:WindowAttach.ShowInTaskManager" Value="False"/>
  92. <Setter Property="Template">
  93. <Setter.Value>
  94. <ControlTemplate TargetType="hc:ScreenshotWindow">
  95. <AdornerDecorator>
  96. <hc:SimplePanel>
  97. <InkCanvas EditingMode="None" Name="PART_Canvas" Background="Transparent"/>
  98. <Rectangle Name="PART_MaskAreaLeft" Style="{StaticResource MaskRect4ScreenshotStyle}"/>
  99. <Rectangle Name="PART_MaskAreaTop" Style="{StaticResource MaskRect4ScreenshotStyle}"/>
  100. <Rectangle Name="PART_MaskAreaRight" Style="{StaticResource MaskRect4ScreenshotStyle}"/>
  101. <Rectangle Name="PART_MaskAreaBottom" Style="{StaticResource MaskRect4ScreenshotStyle}"/>
  102. <Border Name="PART_TargetArea" Style="{StaticResource TargetArea4ScreenshotStyle}">
  103. <hc:SimplePanel>
  104. <Rectangle hc:TipElement.Placement="LeftTop" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  105. <Rectangle hc:TipElement.Placement="Top" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  106. <Rectangle hc:TipElement.Placement="RightTop" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  107. <Rectangle hc:TipElement.Placement="Right" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  108. <Rectangle hc:TipElement.Placement="RightBottom" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  109. <Rectangle hc:TipElement.Placement="Bottom" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  110. <Rectangle hc:TipElement.Placement="LeftBottom" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  111. <Rectangle hc:TipElement.Placement="Left" Style="{StaticResource SnapRect4ScreenshotStyle}"/>
  112. <TextBlock Text="{TemplateBinding SizeStr}" Background="#CC212121" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="8,2"/>
  113. </hc:SimplePanel>
  114. </Border>
  115. <Border x:Name="PART_Magnifier" IsHitTestVisible="False" Visibility="Collapsed" HorizontalAlignment="Left" VerticalAlignment="Top" Width="122" Height="122" BorderThickness="1" BorderBrush="#FF333333" CornerRadius="1">
  116. <Border.Effect>
  117. <DropShadowEffect BlurRadius="2" Opacity=".2" Direction="-45" RenderingBias="Performance" ShadowDepth="3"/>
  118. </Border.Effect>
  119. <hc:SimplePanel>
  120. <Border Margin="0,0,0,32" Background="{TemplateBinding PreviewBrush}" BorderThickness="2" BorderBrush="White">
  121. <hc:SimplePanel>
  122. <Path Data="M56,0 L60,0 60,40 116,40 116,44 60,44 60,84 56,84 56,44 0,44 0,40 56,40 z" Fill="#CC4CC6FF"/>
  123. </hc:SimplePanel>
  124. </Border>
  125. <Border Height="32" VerticalAlignment="Bottom" Background="#CC000000">
  126. <StackPanel VerticalAlignment="Center" Margin="5,0,0,0">
  127. <TextBlock Foreground="White" Text="{TemplateBinding SizeStr}"/>
  128. </StackPanel>
  129. </Border>
  130. </hc:SimplePanel>
  131. </Border>
  132. </hc:SimplePanel>
  133. </AdornerDecorator>
  134. </ControlTemplate>
  135. </Setter.Value>
  136. </Setter>
  137. </Style>
  138. </ResourceDictionary>