RightCardControl.xaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <UserControl x:Class="GeekDesk.Control.UserControls.PannelCard.RightCardControl"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:temp="clr-namespace:GeekDesk.ViewModel.Temp"
  7. xmlns:hc="https://handyorg.github.io/handycontrol"
  8. xmlns:cvt="clr-namespace:GeekDesk.Converts"
  9. xmlns:DraggAnimatedPanel="clr-namespace:DraggAnimatedPanel"
  10. xmlns:xf="clr-namespace:XamlFlair;assembly=XamlFlair.WPF"
  11. xmlns:ot="clr-namespace:GeekDesk.Control.Other"
  12. mc:Ignorable="d"
  13. d:DesignHeight="450" d:DesignWidth="800"
  14. >
  15. <UserControl.Resources>
  16. <!--右侧栏样式动画-->
  17. <!--<Style x:Key="PanelStyle" TargetType="hc:SimpleStackPanel">
  18. <Style.Triggers>
  19. <Trigger Property="IsMouseOver" Value="true">
  20. <Setter Property="Cursor" Value="Hand"/>
  21. </Trigger>
  22. </Style.Triggers>
  23. </Style>-->
  24. <Style x:Key="ImageStyle" TargetType="Image">
  25. <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageWidth, Mode=OneWay}"/>
  26. <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageHeight, Mode=OneWay}"/>
  27. <Setter Property="Source" Value="{Binding BitmapImage}"/>
  28. </Style>
  29. <Style x:Key="MyListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
  30. <Setter Property="FocusVisualStyle" Value="{x:Null}" />
  31. <Setter Property="Template">
  32. <Setter.Value>
  33. <ControlTemplate TargetType="{x:Type ListBoxItem}">
  34. <Border>
  35. <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  36. </Border>
  37. </ControlTemplate>
  38. </Setter.Value>
  39. </Setter>
  40. </Style>
  41. <Style x:Key="SearchListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
  42. <Setter Property="FocusVisualStyle" Value="{x:Null}" />
  43. <Setter Property="VerticalAlignment" Value="Center"/>
  44. <Setter Property="Template">
  45. <Setter.Value>
  46. <ControlTemplate TargetType="{x:Type ListBoxItem}">
  47. <Border>
  48. <Border.Style>
  49. <Style TargetType="Border">
  50. <Setter Property="VerticalAlignment" Value="Center"/>
  51. </Style>
  52. </Border.Style>
  53. <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  54. </Border>
  55. </ControlTemplate>
  56. </Setter.Value>
  57. </Setter>
  58. </Style>
  59. <Storyboard x:Key="Custom1Transition1" x:Shared="False">
  60. <DoubleAnimation From="50" To="0" Duration="0:0:0.4" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
  61. <DoubleAnimation.EasingFunction>
  62. <ElasticEase Oscillations="1"/>
  63. </DoubleAnimation.EasingFunction>
  64. </DoubleAnimation>
  65. </Storyboard>
  66. <Storyboard x:Key="Custom2Transition2" x:Shared="False">
  67. <DoubleAnimation From="10" To="0" Duration="0:0:0.4" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
  68. <DoubleAnimation.EasingFunction>
  69. <ElasticEase Oscillations="1"/>
  70. </DoubleAnimation.EasingFunction>
  71. </DoubleAnimation>
  72. </Storyboard>
  73. <Storyboard x:Key="Custom3Transition3" x:Shared="False">
  74. <DoubleAnimation From=".8" To="1" Duration="0:0:0.4">
  75. <DoubleAnimation.EasingFunction>
  76. <ElasticEase Oscillations="1"/>
  77. </DoubleAnimation.EasingFunction>
  78. </DoubleAnimation>
  79. </Storyboard>
  80. <cvt:OpcityConvert x:Key="OpcityConvert"/>
  81. <cvt:SearchResWidth x:Key="SearchResWidth"/>
  82. <temp:SearchIconList x:Key="SearchIconList"/>
  83. </UserControl.Resources>
  84. <!--右侧栏-->
  85. <Grid>
  86. <hc:Card AllowDrop="True"
  87. x:Name="WrapCard"
  88. Visibility="Visible"
  89. Drop="Wrap_Drop"
  90. BorderThickness="1"
  91. Effect="{DynamicResource EffectShadow2}"
  92. Margin="5,0,5,5" Grid.ColumnSpan="2"
  93. PreviewMouseRightButtonDown="WrapCard_PreviewMouseRightButtonDown"
  94. hc:Dialog.Token="RightWrapCardDialog"
  95. >
  96. <hc:Card.Background>
  97. <SolidColorBrush Color="AliceBlue" hc:GeometryEffect.GeometryEffect="20" Opacity="{Binding AppConfig.CardOpacity, Mode=TwoWay, Converter={StaticResource OpcityConvert}}"/>
  98. </hc:Card.Background>
  99. <hc:Card.BorderBrush>
  100. <SolidColorBrush Color="#FFFFFFFF" Opacity="0"/>
  101. </hc:Card.BorderBrush>
  102. <hc:Card.ContextMenu>
  103. <ContextMenu Width="200">
  104. <MenuItem Header="添加URL项目" Click="AddUrlIcon"/>
  105. <MenuItem Header="添加系统项目" Click="AddSystemIcon"/>
  106. <MenuItem x:Name="CardLockCM" Header="锁定主面板" Click="LockAppPanel"/>
  107. </ContextMenu>
  108. </hc:Card.ContextMenu>
  109. <hc:DialogContainer>
  110. <Grid>
  111. <ot:PasswordDialog xf:Animations.Primary="{xf:Animate BasedOn={StaticResource FadeInAndGrowHorizontally}, Event=Visibility}"
  112. x:Name="PDDialog"
  113. Panel.ZIndex="99"
  114. IsVisibleChanged="PDDialog_IsVisibleChanged"
  115. Margin="0,-100,0,0"/>
  116. <StackPanel Panel.ZIndex="1" Margin="0,-10,-0,0"/>
  117. <WrapPanel Orientation="Horizontal"
  118. VirtualizingPanel.VirtualizationMode="Recycling"
  119. VirtualizingPanel.IsVirtualizing="True"
  120. VirtualizingPanel.IsContainerVirtualizable="True"
  121. >
  122. <UniformGrid x:Name="WrapUFG" xf:Animations.Primary="{xf:Animate BasedOn={StaticResource FadeInAndGrowHorizontally}, Event=Visibility}">
  123. <!--<hc:TransitioningContentControl TransitionStoryboard="{StaticResource Custom3Transition3}">-->
  124. <ListBox x:Name="IconListBox"
  125. ItemsSource="{Binding AppConfig.SelectedMenuIcons, Mode=OneWay}"
  126. BorderThickness="0"
  127. Padding="0,10,0,0"
  128. >
  129. <ListBox.Background>
  130. <SolidColorBrush Opacity="0"/>
  131. </ListBox.Background>
  132. <ListBox.ItemsPanel>
  133. <ItemsPanelTemplate>
  134. <!--<DraggAnimatedPanel:DraggAnimatedPanel Background="#00FFFFFF"
  135. ItemsWidth="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImgPanelWidth, Mode=OneWay}"
  136. ItemsHeight="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImgPanelHeight, Mode=OneWay}"
  137. HorizontalAlignment="Center"
  138. SwapCommand="{Binding SwapCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>-->
  139. <WrapPanel />
  140. </ItemsPanelTemplate>
  141. </ListBox.ItemsPanel>
  142. <ListBox.Resources>
  143. <ContextMenu x:Key="IconDialog" Width="200">
  144. <MenuItem Header="管理员方式运行" Click="IconAdminStart" Tag="{Binding}"/>
  145. <MenuItem Header="打开文件所在位置" Click="ShowInExplore" Tag="{Binding}"/>
  146. <MenuItem Header="添加URL项目" Click="AddUrlIcon"/>
  147. <MenuItem Header="添加系统项目" Click="AddSystemIcon"/>
  148. <MenuItem Header="资源管理器菜单" Click="SystemContextMenu" Tag="{Binding}"/>
  149. <MenuItem Header="属性" Click="PropertyConfig" Tag="{Binding}"/>
  150. <MenuItem Header="从列表移除" Click="RemoveIcon" Tag="{Binding}"/>
  151. </ContextMenu>
  152. </ListBox.Resources>
  153. <ListBox.ItemContainerStyle>
  154. <Style TargetType="ListBoxItem" BasedOn="{StaticResource MyListBoxItemStyle}">
  155. <Setter Property="ContextMenu" Value="{StaticResource IconDialog}"/>
  156. </Style>
  157. </ListBox.ItemContainerStyle>
  158. <ListBox.ItemTemplate>
  159. <DataTemplate>
  160. <hc:SimpleStackPanel Tag="{Binding}"
  161. Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImgPanelHeight, Mode=OneWay}"
  162. Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImgPanelWidth, Mode=OneWay}"
  163. HorizontalAlignment="Center"
  164. hc:Poptip.Content="{Binding Content}"
  165. hc:Poptip.Placement="BottomLeft"
  166. Background="#00FFFFFF"
  167. MouseEnter="StackPanel_MouseEnter"
  168. MouseLeave="StackPanel_MouseLeave"
  169. MouseLeftButtonDown="Icon_MouseLeftButtonDown"
  170. MouseLeftButtonUp="Icon_MouseLeftButtonUp"
  171. >
  172. <!--<StackPanel Background="#00FFFFFF"
  173. MouseEnter="CursorPanel_MouseEnter"
  174. MouseLeave="CursorPanel_MouseLeave"
  175. Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageWidth, Mode=OneWay}">-->
  176. <Image Style="{StaticResource ImageStyle}"
  177. RenderOptions.BitmapScalingMode="HighQuality"/>
  178. <TextBlock MaxWidth="80"
  179. Margin="0,5,0,0"
  180. MaxHeight="40"
  181. FontSize="13"
  182. TextWrapping="Wrap"
  183. TextTrimming="WordEllipsis"
  184. TextAlignment="Center"
  185. VerticalAlignment="Center"
  186. Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.TextColor}"
  187. Text="{Binding Name}"/>
  188. <!--</StackPanel>-->
  189. </hc:SimpleStackPanel>
  190. </DataTemplate>
  191. </ListBox.ItemTemplate>
  192. </ListBox>
  193. <!--</hc:TransitioningContentControl>-->
  194. </UniformGrid>
  195. </WrapPanel>
  196. </Grid>
  197. </hc:DialogContainer>
  198. </hc:Card>
  199. <hc:Card x:Name="VerticalCard"
  200. Visibility="Hidden"
  201. BorderThickness="1"
  202. Effect="{DynamicResource EffectShadow2}"
  203. Margin="5,0,5,5" Grid.ColumnSpan="2"
  204. MouseLeftButtonDown="VerticalCard_MouseLeftButtonDown"
  205. >
  206. <hc:Card.Background>
  207. <SolidColorBrush Color="AliceBlue"
  208. hc:GeometryEffect.GeometryEffect="20"
  209. Opacity="{Binding AppConfig.CardOpacity, Mode=TwoWay, Converter={StaticResource OpcityConvert}}"/>
  210. </hc:Card.Background>
  211. <hc:Card.BorderBrush>
  212. <SolidColorBrush Color="#FFFFFFFF" Opacity="0"/>
  213. </hc:Card.BorderBrush>
  214. <Grid>
  215. <WrapPanel Orientation="Horizontal" VirtualizingPanel.VirtualizationMode="Recycling"
  216. VirtualizingPanel.IsVirtualizing="True"
  217. VirtualizingPanel.IsContainerVirtualizable="True"
  218. >
  219. <UniformGrid x:Name="VerticalUFG" xf:Animations.Primary="{xf:Animate BasedOn={StaticResource FadeIn}, OffsetY= -10, Event=Visibility}">
  220. <!--<hc:TransitioningContentControl TransitionMode="Left2RightWithFade">-->
  221. <ListBox ItemsSource="{Binding Source={StaticResource SearchIconList},Path=IconList}"
  222. BorderThickness="0"
  223. Padding="0,10,0,0"
  224. x:Name="SearchListBox"
  225. SelectionChanged="SearchListBox_SelectionChanged"
  226. >
  227. <ListBox.Background>
  228. <SolidColorBrush Opacity="0"/>
  229. </ListBox.Background>
  230. <ListBox.Resources>
  231. <ContextMenu x:Key="IconDialog" Width="200">
  232. <MenuItem Header="管理员方式运行" Click="IconAdminStart" Tag="{Binding}"/>
  233. <MenuItem Header="打开文件所在位置" Click="ShowInExplore" Tag="{Binding}"/>
  234. <MenuItem Header="添加URL项目" Click="AddUrlIcon"/>
  235. <MenuItem Header="添加系统项目" Click="AddSystemIcon"/>
  236. <MenuItem Header="资源管理器菜单" Click="SystemContextMenu" Tag="{Binding}"/>
  237. <MenuItem Header="属性" Click="PropertyConfig" Tag="{Binding}"/>
  238. </ContextMenu>
  239. </ListBox.Resources>
  240. <ListBox.ItemContainerStyle>
  241. <Style TargetType="ListBoxItem" BasedOn="{StaticResource SearchListBoxItemStyle}">
  242. <Setter Property="ContextMenu" Value="{StaticResource IconDialog}"/>
  243. </Style>
  244. </ListBox.ItemContainerStyle>
  245. <ListBox.ItemsPanel>
  246. <ItemsPanelTemplate>
  247. <StackPanel Background="#00FFFFFF"
  248. Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.MenuCardWidth, Mode=OneWay, Converter={StaticResource SearchResWidth}, ConverterParameter=1}"
  249. />
  250. </ItemsPanelTemplate>
  251. </ListBox.ItemsPanel>
  252. <ListBox.ItemTemplate>
  253. <DataTemplate>
  254. <Border CornerRadius="8">
  255. <Border.Style>
  256. <Style TargetType="Border">
  257. <Setter Property="VerticalAlignment" Value="Center"/>
  258. <Style.Triggers>
  259. <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem }}}"
  260. Value="True">
  261. <Setter Property="Background">
  262. <Setter.Value>
  263. <SolidColorBrush Color="White" Opacity="0.68"/>
  264. </Setter.Value>
  265. </Setter>
  266. </DataTrigger>
  267. </Style.Triggers>
  268. </Style>
  269. </Border.Style>
  270. <WrapPanel Tag="{Binding}"
  271. Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageHeight, Mode=OneWay}"
  272. Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.MenuCardWidth, Mode=OneWay, Converter={StaticResource SearchResWidth}, ConverterParameter=2}"
  273. HorizontalAlignment="Left"
  274. VerticalAlignment="Center"
  275. hc:Poptip.HitMode="None"
  276. hc:Poptip.IsOpen="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}"
  277. hc:Poptip.Content="{Binding Content}"
  278. hc:Poptip.Placement="BottomLeft"
  279. Background="#00FFFFFF"
  280. MouseLeftButtonDown="Icon_MouseLeftButtonDown"
  281. MouseLeftButtonUp="Icon_MouseLeftButtonUp"
  282. Margin="25,10,0,10"
  283. >
  284. <Image Style="{StaticResource ImageStyle}" RenderOptions.BitmapScalingMode="HighQuality"/>
  285. <TextBlock
  286. Margin="10,5,0,0"
  287. MaxHeight="40"
  288. FontSize="13"
  289. TextWrapping="Wrap"
  290. TextTrimming="WordEllipsis"
  291. TextAlignment="Left"
  292. VerticalAlignment="Center"
  293. Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.TextColor}"
  294. Text="{Binding Name}"/>
  295. </WrapPanel>
  296. </Border>
  297. </DataTemplate>
  298. </ListBox.ItemTemplate>
  299. </ListBox>
  300. <!--</hc:TransitioningContentControl>-->
  301. </UniformGrid>
  302. </WrapPanel>
  303. </Grid>
  304. </hc:Card>
  305. </Grid>
  306. </UserControl>