TextEditProperty.xaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. <UserControl
  2. x:Class="PDF_Office.Views.PropertyPanel.PDFEdit.TextEditProperty"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:CompositeControl="clr-namespace:PDF_Office.CustomControl.CompositeControl"
  6. xmlns:Convert="clr-namespace:PDF_Office.DataConvert"
  7. xmlns:FormControl="clr-namespace:PDF_Office.CustomControl.Form"
  8. xmlns:cus="clr-namespace:PDF_Office.CustomControl"
  9. xmlns:cusColor="clr-namespace:PDF_Office.CustomControl.CompositeControl"
  10. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  11. xmlns:form="clr-namespace:PDF_Office.CustomControl.Form"
  12. xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
  13. xmlns:local="clr-namespace:PDF_Office.Views.PropertyPanel"
  14. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  15. xmlns:pdfedit="clr-namespace:PDF_Office.Views.PropertyPanel.PDFEdit"
  16. xmlns:prism="http://prismlibrary.com/"
  17. d:DesignHeight="450"
  18. d:DesignWidth="260"
  19. prism:ViewModelLocator.AutoWireViewModel="True"
  20. Background="{StaticResource color.sys.layout.mg}"
  21. Loaded="UserControl_Loaded"
  22. mc:Ignorable="d">
  23. <UserControl.Resources>
  24. <ResourceDictionary>
  25. <ResourceDictionary.MergedDictionaries>
  26. <ResourceDictionary Source="../../../Styles/SliderStyle.xaml" />
  27. <ResourceDictionary Source="../../../Styles/CustomBtnStyle.xaml" />
  28. <ResourceDictionary Source="../../../Styles/RadioButtonStyle.xaml" />
  29. </ResourceDictionary.MergedDictionaries>
  30. <Convert:BoolToVisible x:Key="BoolToVisible" />
  31. <Convert:InvertBoolToVisibleConvert x:Key="InvertBoolToVisibleConvert" />
  32. <Convert:InvertBoolConvert x:Key="InvertBoolConvert" />
  33. <DataTemplate x:Key="FontStyleData">
  34. <Grid>
  35. <TextBlock Foreground="Black" Text="{Binding mFontStyleName}" />
  36. </Grid>
  37. </DataTemplate>
  38. </ResourceDictionary>
  39. </UserControl.Resources>
  40. <Grid Margin="16,14">
  41. <Grid.RowDefinitions>
  42. <RowDefinition Height="Auto" />
  43. <RowDefinition Height="Auto" />
  44. </Grid.RowDefinitions>
  45. <Grid>
  46. <StackPanel>
  47. <TextBlock
  48. Name="AnnotTypeTitle"
  49. HorizontalAlignment="Left"
  50. FontFamily="Segoe UI"
  51. FontSize="14"
  52. FontWeight="SemiBold"
  53. LineHeight="22">
  54. Freetext
  55. </TextBlock>
  56. <Border
  57. Width="228"
  58. Height="88"
  59. Margin="0,8,0,0"
  60. Background="{StaticResource color.field.bg.def}"
  61. BorderBrush="{StaticResource color.field.border.norm}"
  62. BorderThickness="1"
  63. CornerRadius="2">
  64. <Grid>
  65. <Border
  66. Name="FreeTextBorder"
  67. Padding="5"
  68. HorizontalAlignment="Center"
  69. VerticalAlignment="Center">
  70. <TextBlock
  71. Name="SampleText"
  72. HorizontalAlignment="Center"
  73. VerticalAlignment="Center"
  74. FontFamily="{Binding FontFamilyData.ValueStr}"
  75. FontSize="{Binding FontSizeData.Value}"
  76. FontStyle="{Binding FontStyleItem}"
  77. FontWeight="{Binding FontWeightItem}"
  78. Foreground="{Binding SelectColor}"
  79. Text="Sample" />
  80. </Border>
  81. <Path
  82. Name="UnderlinePath"
  83. Margin="0,51,0,0"
  84. HorizontalAlignment="Center"
  85. StrokeThickness="2"
  86. Visibility="Collapsed">
  87. <Path.Data>
  88. <LineGeometry StartPoint="0,0" EndPoint="62,0" />
  89. </Path.Data>
  90. </Path>
  91. <Path
  92. Name="StrikeoutPath"
  93. Margin="0,40,0,0"
  94. HorizontalAlignment="Center"
  95. StrokeThickness="2"
  96. Visibility="Collapsed">
  97. <Path.Data>
  98. <LineGeometry StartPoint="0,0" EndPoint="62,0" />
  99. </Path.Data>
  100. </Path>
  101. <Path
  102. Name="SquigglyPath"
  103. Margin="0,51,0,0"
  104. HorizontalAlignment="Center"
  105. StrokeThickness="2"
  106. Visibility="Collapsed" />
  107. </Grid>
  108. </Border>
  109. <Border
  110. Height="32"
  111. Margin="0,8,0,18"
  112. BorderBrush="#E2E3E6"
  113. BorderThickness="0">
  114. <Grid>
  115. <CompositeControl:CustomComboControl
  116. x:Name="FontTitleBox"
  117. Width="188"
  118. Height="32"
  119. HorizontalAlignment="Left"
  120. IsValueContent="True"
  121. ItemSource="{Binding PresetTextItems}"
  122. SelectedItems="{Binding PresetTextData, Mode=TwoWay}" />
  123. <Button
  124. Width="32"
  125. Height="32"
  126. HorizontalAlignment="Right" Command="{Binding CustomFontStyleCommand}"
  127. Style="{StaticResource btn.sec}">
  128. <Path
  129. Width="16"
  130. Height="16"
  131. Data="M4 8C4 8.82843 3.32843 9.5 2.5 9.5C1.67157 9.5 1 8.82843 1 8C1 7.17157 1.67157 6.5 2.5 6.5C3.32843 6.5 4 7.17157 4 8ZM9.3999 8C9.3999 8.82843 8.72833 9.5 7.8999 9.5C7.07148 9.5 6.3999 8.82843 6.3999 8C6.3999 7.17157 7.07148 6.5 7.8999 6.5C8.72833 6.5 9.3999 7.17157 9.3999 8ZM13.5 9.5C14.3284 9.5 15 8.82843 15 8C15 7.17157 14.3284 6.5 13.5 6.5C12.6716 6.5 12 7.17157 12 8C12 8.82843 12.6716 9.5 13.5 9.5Z"
  132. Fill="{StaticResource color.icon.base.neutral.norm.lv1}" />
  133. </Button>
  134. </Grid>
  135. </Border>
  136. <StackPanel>
  137. <TextBlock
  138. Margin="0,0,0,10"
  139. Style="{StaticResource PropertyHeaderLv2}"
  140. Text="文本" />
  141. <StackPanel>
  142. <CompositeControl:CustomComboControl
  143. x:Name="FontFamilyBox"
  144. Height="32"
  145. IsValueContent="True"
  146. ItemSource="{Binding FontFamilyItems}"
  147. SelectedItems="{Binding FontFamilyData, Mode=TwoWay}" />
  148. <Grid Margin="0,8">
  149. <CompositeControl:CustomComboControl
  150. x:Name="FontStyleBox"
  151. Width="110"
  152. Height="32"
  153. HorizontalAlignment="Left"
  154. IsValueContent="True"
  155. ItemSource="{Binding FontStyleItems}"
  156. SelectedItems="{Binding FontWeightStyleItem, Mode=TwoWay}" />
  157. <CompositeControl:CustomComboControl
  158. x:Name="FontSizeBox"
  159. Width="110"
  160. Height="32"
  161. HorizontalAlignment="Right"
  162. SelectedItems="{Binding FontSizeData, Mode=TwoWay}" />
  163. </Grid>
  164. <Grid>
  165. <StackPanel Orientation="Horizontal">
  166. <RadioButton
  167. x:Name="TextAlignLeftBtn"
  168. Width="32"
  169. Height="32"
  170. VerticalContentAlignment="Center"
  171. Background="Transparent"
  172. Foreground="#616469"
  173. GroupName="TextAlign"
  174. IsChecked="True"
  175. Style="{DynamicResource GreyBgRadioBtnStyle}"
  176. Tag="AlignLeft">
  177. <RadioButton.Content>
  178. <Grid Width="32" Height="32">
  179. <Canvas Margin="5,10,0,0">
  180. <Rectangle
  181. Canvas.Top="0.25"
  182. Width="14"
  183. Height="1.5"
  184. Stroke="{Binding ElementName=TextAlignLeftBtn, Path=Foreground}"
  185. StrokeThickness="1.5" />
  186. <Rectangle
  187. Canvas.Top="4.25"
  188. Width="8"
  189. Height="1.5"
  190. Stroke="{Binding ElementName=TextAlignLeftBtn, Path=Foreground}"
  191. StrokeThickness="1.5" />
  192. <Rectangle
  193. Canvas.Top="12.25"
  194. Width="8"
  195. Height="1.5"
  196. Stroke="{Binding ElementName=TextAlignLeftBtn, Path=Foreground}"
  197. StrokeThickness="1.5" />
  198. <Rectangle
  199. Canvas.Top="8.25"
  200. Width="14"
  201. Height="1.5"
  202. Stroke="{Binding ElementName=TextAlignLeftBtn, Path=Foreground}"
  203. StrokeThickness="1.5" />
  204. </Canvas>
  205. </Grid>
  206. </RadioButton.Content>
  207. <i:Interaction.Triggers>
  208. <i:EventTrigger EventName="Checked">
  209. <i:InvokeCommandAction Command="{Binding TextAlignCheckedCommand}" CommandParameter="{Binding ElementName=TextAlignLeftBtn, Path=Tag}" />
  210. </i:EventTrigger>
  211. </i:Interaction.Triggers>
  212. </RadioButton>
  213. <RadioButton
  214. x:Name="TextAlignCenterBtn"
  215. Width="32"
  216. Height="32"
  217. Margin="8,0"
  218. VerticalContentAlignment="Center"
  219. Background="Transparent"
  220. Foreground="#616469"
  221. GroupName="TextAlign"
  222. Style="{DynamicResource GreyBgRadioBtnStyle}"
  223. Tag="AlignCenter">
  224. <RadioButton.Content>
  225. <Grid Width="32" Height="32">
  226. <Canvas Margin="5,10,0,0">
  227. <Rectangle
  228. Canvas.Top="0.25"
  229. Width="14"
  230. Height="1.5"
  231. Stroke="{Binding ElementName=TextAlignCenterBtn, Path=Foreground}"
  232. StrokeThickness="1.5" />
  233. <Rectangle
  234. Canvas.Left="3"
  235. Canvas.Top="4.25"
  236. Width="8"
  237. Height="1.5"
  238. Stroke="{Binding ElementName=TextAlignCenterBtn, Path=Foreground}"
  239. StrokeThickness="1.5" />
  240. <Rectangle
  241. Canvas.Left="3"
  242. Canvas.Top="12.25"
  243. Width="8"
  244. Height="1.5"
  245. Stroke="{Binding ElementName=TextAlignCenterBtn, Path=Foreground}"
  246. StrokeThickness="1.5" />
  247. <Rectangle
  248. Canvas.Top="8.25"
  249. Width="14"
  250. Height="1.5"
  251. Stroke="{Binding ElementName=TextAlignCenterBtn, Path=Foreground}"
  252. StrokeThickness="1.5" />
  253. </Canvas>
  254. </Grid>
  255. </RadioButton.Content>
  256. <i:Interaction.Triggers>
  257. <i:EventTrigger EventName="Checked">
  258. <i:InvokeCommandAction Command="{Binding TextAlignCheckedCommand}" CommandParameter="{Binding ElementName=TextAlignCenterBtn, Path=Tag}" />
  259. </i:EventTrigger>
  260. </i:Interaction.Triggers>
  261. </RadioButton>
  262. <RadioButton
  263. x:Name="TextAlignRightBtn"
  264. Grid.Column="2"
  265. Width="32"
  266. Height="32"
  267. VerticalContentAlignment="Center"
  268. Background="Transparent"
  269. Foreground="#616469"
  270. GroupName="TextAlign"
  271. Style="{DynamicResource GreyBgRadioBtnStyle}"
  272. Tag="AlignRight">
  273. <RadioButton.Content>
  274. <Grid Width="32" Height="32">
  275. <Canvas Margin="5,10,0,0">
  276. <Rectangle
  277. Canvas.Top="0.25"
  278. Width="14"
  279. Height="1.5"
  280. Stroke="{Binding ElementName=TextAlignRightBtn, Path=Foreground}"
  281. StrokeThickness="1.5" />
  282. <Rectangle
  283. Canvas.Left="6"
  284. Canvas.Top="4.25"
  285. Width="8"
  286. Height="1.5"
  287. Stroke="{Binding ElementName=TextAlignRightBtn, Path=Foreground}"
  288. StrokeThickness="1.5" />
  289. <Rectangle
  290. Canvas.Left="6"
  291. Canvas.Top="12.25"
  292. Width="8"
  293. Height="1.5"
  294. Stroke="{Binding ElementName=TextAlignRightBtn, Path=Foreground}"
  295. StrokeThickness="1.5" />
  296. <Rectangle
  297. Canvas.Top="8.25"
  298. Width="14"
  299. Height="1.5"
  300. Stroke="{Binding ElementName=TextAlignRightBtn, Path=Foreground}"
  301. StrokeThickness="1.5" />
  302. </Canvas>
  303. </Grid>
  304. </RadioButton.Content>
  305. <i:Interaction.Triggers>
  306. <i:EventTrigger EventName="Checked">
  307. <i:InvokeCommandAction Command="{Binding TextAlignCheckedCommand}" CommandParameter="{Binding ElementName=TextAlignRightBtn, Path=Tag}" />
  308. </i:EventTrigger>
  309. </i:Interaction.Triggers>
  310. </RadioButton>
  311. <RadioButton
  312. x:Name="TextAlignBtn"
  313. Grid.Column="3"
  314. Width="32"
  315. Height="32"
  316. Margin="8,0"
  317. VerticalContentAlignment="Center"
  318. Background="Transparent"
  319. Foreground="#616469"
  320. GroupName="TextAlign"
  321. Style="{DynamicResource GreyBgRadioBtnStyle}"
  322. Tag="Align">
  323. <RadioButton.Content>
  324. <Grid Width="32" Height="32">
  325. <Canvas Margin="5,10,0,0">
  326. <Rectangle
  327. Canvas.Top="0.25"
  328. Width="14"
  329. Height="1.5"
  330. Stroke="{Binding ElementName=TextAlignBtn, Path=Foreground}"
  331. StrokeThickness="1.5" />
  332. <Rectangle
  333. Canvas.Top="8.25"
  334. Width="14"
  335. Height="1.5"
  336. Stroke="{Binding ElementName=TextAlignBtn, Path=Foreground}"
  337. StrokeThickness="1.5" />
  338. <Rectangle
  339. Canvas.Top="4.25"
  340. Width="14"
  341. Height="1.5"
  342. Stroke="{Binding ElementName=TextAlignBtn, Path=Foreground}"
  343. StrokeThickness="1.5" />
  344. <Rectangle
  345. Canvas.Top="12.25"
  346. Width="14"
  347. Height="1.5"
  348. Stroke="{Binding ElementName=TextAlignBtn, Path=Foreground}"
  349. StrokeThickness="1.5" />
  350. </Canvas>
  351. </Grid>
  352. </RadioButton.Content>
  353. <i:Interaction.Triggers>
  354. <i:EventTrigger EventName="Checked">
  355. <i:InvokeCommandAction Command="{Binding TextAlignCheckedCommand}" CommandParameter="{Binding ElementName=TextAlignBtn, Path=Tag}" />
  356. </i:EventTrigger>
  357. </i:Interaction.Triggers>
  358. </RadioButton>
  359. </StackPanel>
  360. <cusColor:ColorContent
  361. x:Name="FontColorBox"
  362. Width="56"
  363. HorizontalAlignment="Right" SelectedColor="{Binding SelectColor}"
  364. ShowColorList="Collapsed" />
  365. </Grid>
  366. </StackPanel>
  367. </StackPanel>
  368. <TextBlock
  369. x:Name="AlignImg"
  370. Margin="0,18,0,10"
  371. FontFamily="Segoe UI"
  372. FontSize="12"
  373. FontWeight="SemiBold"
  374. Foreground="{StaticResource color.sys.text.neutral.lv2}"
  375. LineHeight="20">
  376. Align
  377. </TextBlock>
  378. </StackPanel>
  379. </Grid>
  380. <FormControl:LayoutAglinContent
  381. x:Name="laoutAglin"
  382. Grid.Row="1"
  383. IsLayoutAlign="{Binding IsLayoutAlign}"
  384. IsLayoutAvgAlign="{Binding IsLayoutAvgAlign}">
  385. <i:Interaction.Triggers>
  386. <i:EventTrigger EventName="ValueChanged">
  387. <i:InvokeCommandAction Command="{Binding LayoutAlignCheckedCommand}" CommandParameter="{Binding ElementName=laoutAglin, Path=Btntag}" />
  388. </i:EventTrigger>
  389. </i:Interaction.Triggers>
  390. </FormControl:LayoutAglinContent>
  391. </Grid>
  392. </UserControl>