ThemeControl.xaml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <UserControl x:Class="GeekDesk.Control.UserControls.Config.ThemeControl"
  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:viewmodel="clr-namespace:GeekDesk.ViewModel"
  6. d:DataContext="{d:DesignInstance Type=viewmodel:AppConfig}"
  7. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  8. xmlns:hc="https://handyorg.github.io/handycontrol"
  9. xmlns:cvt="clr-namespace:GeekDesk.Converts"
  10. mc:Ignorable="d"
  11. Background="Transparent"
  12. d:DesignHeight="500" d:DesignWidth="450">
  13. <UserControl.Resources>
  14. <cvt:BGStyleConvert x:Key="BGStyleConvert"/>
  15. <cvt:StringAppendConvert x:Key="StringAppendConvert"/>
  16. <cvt:Visibility2BooleanConverter x:Key="Visibility2BooleanConverter"/>
  17. <cvt:TextToColorConverter x:Key="TextToColorConverter"/>
  18. </UserControl.Resources>
  19. <Grid>
  20. <Grid Background="Transparent">
  21. <StackPanel Margin="20" >
  22. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  23. <TextBlock Text="背景风格" VerticalAlignment="Center"/>
  24. </hc:UniformSpacingPanel>
  25. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4">
  26. <RadioButton Margin="10,0,0,0"
  27. Style="{StaticResource MyRadioBtnStyle}" Click="BGStyle_Changed" Content="图 片"
  28. IsChecked="{Binding BGStyle, Mode=TwoWay, Converter={StaticResource BGStyleConvert}, ConverterParameter=1}"/>
  29. <RadioButton Margin="10,0,0,0"
  30. Style="{StaticResource MyRadioBtnStyle}" Click="BGStyle_Changed" Content="纯 色"
  31. IsChecked="{Binding BGStyle, Mode=TwoWay, Converter={StaticResource BGStyleConvert}, ConverterParameter=2}"/>
  32. </hc:UniformSpacingPanel>
  33. <UniformGrid x:Name="ImgBGConf">
  34. <hc:TransitioningContentControl TransitionMode="Fade"
  35. Height="130">
  36. <StackPanel>
  37. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  38. <TextBlock Text="图片背景" VerticalAlignment="Center"/>
  39. </hc:UniformSpacingPanel>
  40. <hc:UniformSpacingPanel Spacing="10" Margin="20,15,0,0" Grid.ColumnSpan="4">
  41. <TextBlock Text="图片路径:" VerticalAlignment="Center" Margin="0,5,0,0"/>
  42. <TextBlock Text="{Binding BacImgName}" Width="200"
  43. Margin="0,5,0,0"
  44. VerticalAlignment="Center"
  45. hc:Poptip.HitMode="None"
  46. hc:Poptip.IsOpen="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}"
  47. hc:Poptip.Content="{Binding BacImgName}"
  48. hc:Poptip.Placement="TopLeft"
  49. />
  50. <Button Content="修改" Style="{StaticResource MyBtnStyle}" Click="BGButton_Click"/>
  51. <Button Content="默认" Style="{StaticResource MyBtnStyle}" Click="DefaultButton_Click"/>
  52. </hc:UniformSpacingPanel>
  53. <hc:UniformSpacingPanel Spacing="10" Margin="20,10,0,0" Grid.ColumnSpan="4">
  54. <CheckBox Style="{StaticResource MyCheckBoxStyle}" x:Name="IconIsAdmin" Content="毛玻璃效果" Click="BGStyle_Changed" IsChecked="{Binding BlurEffect}"/>
  55. </hc:UniformSpacingPanel>
  56. </StackPanel>
  57. </hc:TransitioningContentControl>
  58. </UniformGrid>
  59. <UniformGrid x:Name="GradientBGConf">
  60. <hc:TransitioningContentControl TransitionMode="Fade"
  61. Height="130">
  62. <StackPanel>
  63. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  64. <TextBlock Text="纯色背景" VerticalAlignment="Center"/>
  65. </hc:UniformSpacingPanel>
  66. <hc:UniformSpacingPanel Spacing="10" Margin="20,0,0,0" Grid.ColumnSpan="4">
  67. <TextBlock Text="色彩1:" VerticalAlignment="Center" Margin="0,5,0,0"/>
  68. <Rectangle Width="10" Height="10" Stroke="White" Margin="0,0,0,5" Fill="{Binding Path=GradientBGParam.Color1, Converter={StaticResource TextToColorConverter}}"/>
  69. <TextBlock Text="{Binding GradientBGParam.Color1, NotifyOnTargetUpdated=True, Mode=OneWay}"
  70. TargetUpdated="Color_TargetUpdated"
  71. Width="65"
  72. Margin="0,5,0,0"
  73. VerticalAlignment="Center"
  74. />
  75. <Button Style="{StaticResource MyBtnStyle}"
  76. Content="设置"
  77. Tag="Color1"
  78. Click="ColorButton_Click"/>
  79. </hc:UniformSpacingPanel>
  80. <hc:UniformSpacingPanel Spacing="10" Margin="20,5,0,0" Grid.ColumnSpan="4">
  81. <TextBlock Text="色彩2:" VerticalAlignment="Center" Margin="0,5,0,0"/>
  82. <Rectangle Width="10" Height="10" Stroke="White" Margin="0,0,0,5" Fill="{Binding Path=GradientBGParam.Color2, Converter={StaticResource TextToColorConverter}}"/>
  83. <TextBlock Text="{Binding GradientBGParam.Color2, NotifyOnTargetUpdated=True, Mode=OneWay}"
  84. TargetUpdated="Color_TargetUpdated"
  85. Width="65"
  86. Margin="0,5,0,0"
  87. VerticalAlignment="Center"
  88. />
  89. <Button Style="{StaticResource MyBtnStyle}"
  90. Content="设置" Tag="Color2"
  91. Click="ColorButton_Click"
  92. />
  93. </hc:UniformSpacingPanel>
  94. <hc:UniformSpacingPanel HorizontalAlignment="Center" Spacing="10" Grid.ColumnSpan="4">
  95. <Button Content="系统预设"
  96. Style="{StaticResource MyBtnStyle}"
  97. Margin="0,5,0,0"
  98. hc:Poptip.HitMode="None"
  99. hc:Poptip.IsOpen="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}"
  100. hc:Poptip.Content="{Binding GradientBGParam.Name, Converter={StaticResource StringAppendConvert}, ConverterParameter=当前设置: \{\}}"
  101. hc:Poptip.Placement="Top"
  102. Click="SysBG_Click"
  103. />
  104. <Button Content="保存当前颜色到系统预设"
  105. Style="{StaticResource MyBtnStyle}"
  106. Margin="0,5,0,0"
  107. Click="NewBGBtn_Click"
  108. />
  109. </hc:UniformSpacingPanel>
  110. </StackPanel>
  111. </hc:TransitioningContentControl>
  112. </UniformGrid>
  113. <hc:Divider LineStrokeDashArray="3,3" Margin="0,0,0,0" Height="20" LineStroke="Black" Grid.ColumnSpan="1"/>
  114. <hc:UniformSpacingPanel Spacing="10" Margin="5,-10,0,0" Grid.ColumnSpan="4">
  115. <CheckBox Style="{StaticResource MyCheckBoxStyle}" Content="置于顶层" IsChecked="{Binding AlwaysTopmost}"/>
  116. </hc:UniformSpacingPanel>
  117. <hc:UniformSpacingPanel Spacing="10" Margin="5,10,0,0" Grid.ColumnSpan="4">
  118. <CheckBox Style="{StaticResource MyCheckBoxStyle}" Content="主窗口动画" IsChecked="{Binding AppAnimation}" Click="Animation_Checked"/>
  119. </hc:UniformSpacingPanel>
  120. <hc:UniformSpacingPanel Spacing="10" Margin="5,10,0,0" Grid.ColumnSpan="4">
  121. <CheckBox Style="{StaticResource MyCheckBoxStyle}" Content="列表展开动画" IsChecked="{Binding ItemSpradeAnimation}"/>
  122. </hc:UniformSpacingPanel>
  123. <hc:UniformSpacingPanel Spacing="10" Margin="5,10,0,0" Grid.ColumnSpan="4">
  124. <CheckBox Style="{StaticResource MyCheckBoxStyle}" x:Name="BarIcon" Content="显示托盘图标" IsChecked="{Binding ShowBarIcon}"/>
  125. </hc:UniformSpacingPanel>
  126. <hc:UniformSpacingPanel Spacing="10" Margin="5,10,0,0" Grid.ColumnSpan="4">
  127. <CheckBox Style="{StaticResource MyCheckBoxStyle}" Content="显示主面板Logo" IsChecked="{Binding TitleLogoVisible, Mode=TwoWay, Converter={StaticResource Visibility2BooleanConverter}}"/>
  128. </hc:UniformSpacingPanel>
  129. <hc:UniformSpacingPanel Spacing="10" Margin="5,10,0,0" Grid.ColumnSpan="4">
  130. <CheckBox Style="{StaticResource MyCheckBoxStyle}" Content="显示图标标题" IsChecked="{Binding ShowIconTitle, Mode=TwoWay}"/>
  131. </hc:UniformSpacingPanel>
  132. <StackPanel Margin="0,15,0,0">
  133. <hc:UniformSpacingPanel Spacing="10" Grid.ColumnSpan="4">
  134. <TextBlock Text="卡片不透明度" VerticalAlignment="Center"/>
  135. </hc:UniformSpacingPanel>
  136. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4">
  137. <hc:PreviewSlider Value="{Binding CardOpacity}"
  138. Maximum="100"
  139. Width="350"
  140. >
  141. <hc:PreviewSlider.PreviewContent>
  142. <Label Style="{StaticResource LabelPrimary}" Content="{Binding Path=(hc:PreviewSlider.PreviewPosition),RelativeSource={RelativeSource Self}}" ContentStringFormat="#0"/>
  143. </hc:PreviewSlider.PreviewContent>
  144. </hc:PreviewSlider>
  145. </hc:UniformSpacingPanel>
  146. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  147. <TextBlock Text="背景不透明度" VerticalAlignment="Center"/>
  148. </hc:UniformSpacingPanel>
  149. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4">
  150. <hc:PreviewSlider Value="{Binding BgOpacity}"
  151. ValueChanged="BGOpacity_ValueChanged"
  152. Maximum="100"
  153. Width="350"
  154. >
  155. <hc:PreviewSlider.PreviewContent>
  156. <Label Style="{StaticResource LabelPrimary}" Content="{Binding Path=(hc:PreviewSlider.PreviewPosition),RelativeSource={RelativeSource Self}}" ContentStringFormat="#0"/>
  157. </hc:PreviewSlider.PreviewContent>
  158. </hc:PreviewSlider>
  159. </hc:UniformSpacingPanel>
  160. <!--<hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  161. <TextBlock Text="主面板不透明度" VerticalAlignment="Center"/>
  162. </hc:UniformSpacingPanel>
  163. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4">
  164. <hc:PreviewSlider Value="{Binding PannelOpacity}"
  165. Minimum="50"
  166. Maximum="100"
  167. Width="350"
  168. >
  169. <hc:PreviewSlider.PreviewContent>
  170. <Label Style="{StaticResource LabelPrimary}" Content="{Binding Path=(hc:PreviewSlider.PreviewPosition),RelativeSource={RelativeSource Self}}" ContentStringFormat="#0"/>
  171. </hc:PreviewSlider.PreviewContent>
  172. </hc:PreviewSlider>
  173. </hc:UniformSpacingPanel>-->
  174. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  175. <TextBlock Text="主面板圆角大小" VerticalAlignment="Center"/>
  176. </hc:UniformSpacingPanel>
  177. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4">
  178. <hc:PreviewSlider Value="{Binding PannelCornerRadius}"
  179. Maximum="25"
  180. Width="350"
  181. >
  182. <hc:PreviewSlider.PreviewContent>
  183. <Label Style="{StaticResource LabelPrimary}" Content="{Binding Path=(hc:PreviewSlider.PreviewPosition),RelativeSource={RelativeSource Self}}" ContentStringFormat="#0"/>
  184. </hc:PreviewSlider.PreviewContent>
  185. </hc:PreviewSlider>
  186. </hc:UniformSpacingPanel>
  187. <hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,0" Grid.ColumnSpan="4">
  188. <TextBlock Text="图标大小" VerticalAlignment="Center"/>
  189. </hc:UniformSpacingPanel>
  190. <hc:UniformSpacingPanel Spacing="10" Margin="10,5,0,0" Grid.ColumnSpan="4"
  191. Background="#00FFFFFF"
  192. PreviewMouseLeftButtonDown="PreviewSlider_MouseLeftButtonUp"
  193. >
  194. <hc:PreviewSlider Value="{Binding ImageWidth, Mode=TwoWay}"
  195. Minimum="40"
  196. Maximum="60"
  197. Width="350"
  198. >
  199. <hc:PreviewSlider.PreviewContent>
  200. <Label Style="{StaticResource LabelPrimary}" Content="{Binding Path=(hc:PreviewSlider.PreviewPosition),RelativeSource={RelativeSource Self}}" ContentStringFormat="#0"/>
  201. </hc:PreviewSlider.PreviewContent>
  202. </hc:PreviewSlider>
  203. </hc:UniformSpacingPanel>
  204. </StackPanel>
  205. <hc:Divider LineStrokeDashArray="3,3" LineStroke="Black" Grid.ColumnSpan="4"/>
  206. <hc:UniformSpacingPanel Spacing="10" Grid.ColumnSpan="4">
  207. <TextBlock VerticalAlignment="Center" Text="图标字体颜色:" />
  208. <Rectangle Width="10" Height="10" Stroke="White" Margin="0,0,0,5" Fill="{Binding Path=TextColor, Converter={StaticResource TextToColorConverter}}"/>
  209. <TextBlock VerticalAlignment="Center" Text="{Binding TextColor}" Foreground="{Binding TextColor}" Width="100"/>
  210. <Button Style="{StaticResource MyBtnStyle}" Content="选择" Margin="0,-10,0,0" Tag="Text" Click="ColorButton_Click"/>
  211. </hc:UniformSpacingPanel>
  212. </StackPanel>
  213. </Grid>
  214. <!--<StackPanel x:Name="ColorPanel" Panel.ZIndex="1"
  215. Visibility="Collapsed"
  216. Height="500"
  217. Width="450"
  218. VerticalAlignment="Center">
  219. <StackPanel.Background>
  220. <SolidColorBrush Color="AliceBlue" Opacity="0.01"/>
  221. </StackPanel.Background>-->
  222. <!--<hc:ColorPicker Name="MyColorPicker"
  223. Canceled="MyColorPicker_Canceled"
  224. Confirmed="MyColorPicker_Confirmed"
  225. SelectedColorChanged="MyColorPicker_SelectedColorChanged"/>-->
  226. <!--</StackPanel>-->
  227. </Grid>
  228. </UserControl>