ThemeControl.xaml 16 KB

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