MainWindow.xaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <Window x:Class="MatrixXAMLOnly.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:MatrixXAMLOnly"
  7. mc:Ignorable="d"
  8. Title="Калькулятор: матрицы" Height="700" Width="1100" Icon="Images\matrix_icon.ico" MinHeight="500" MinWidth="800" x:Name="Window">
  9. <Window.Resources>
  10. <Style TargetType="{x:Type Button}" x:Key="HamburgerBtn">
  11. <Setter Property="Background" Value="Transparent" />
  12. <Setter Property="Foreground" Value="#373737" />
  13. <Setter Property="FontSize" Value="15" />
  14. <Setter Property="SnapsToDevicePixels" Value="True" />
  15. <Setter Property="Template">
  16. <Setter.Value>
  17. <ControlTemplate TargetType="{x:Type Button}">
  18. <Border CornerRadius="1" Background="{TemplateBinding Background}">
  19. <Grid>
  20. <Grid.RowDefinitions>
  21. <RowDefinition Height="2.5*"/>
  22. <RowDefinition Height="1*"/>
  23. <RowDefinition Height="0.8*"/>
  24. <RowDefinition Height="1*"/>
  25. <RowDefinition Height="0.8*"/>
  26. <RowDefinition Height="1*"/>
  27. <RowDefinition Height="2.5*"/>
  28. </Grid.RowDefinitions>
  29. <Grid.ColumnDefinitions>
  30. <ColumnDefinition/>
  31. <ColumnDefinition Width="6*"/>
  32. <ColumnDefinition/>
  33. </Grid.ColumnDefinitions>
  34. <Rectangle Grid.Row="1" Grid.Column="1" Fill="#373737" RadiusX="2" RadiusY="2"/>
  35. <Rectangle Grid.Row="3" Grid.Column="1" Fill="#373737" RadiusX="2" RadiusY="2"/>
  36. <Rectangle Grid.Row="5" Grid.Column="1" Fill="#373737" RadiusX="2" RadiusY="2"/>
  37. </Grid>
  38. </Border>
  39. <ControlTemplate.Triggers>
  40. <Trigger Property="IsMouseOver" Value="True">
  41. <Setter Property="Background" Value="#cccdc6" />
  42. <Setter Property="Foreground" Value="White" />
  43. </Trigger>
  44. <Trigger Property="IsPressed" Value="True">
  45. <Setter Property="Background" Value="#e8e9eb" />
  46. <Setter Property="Foreground" Value="White" />
  47. </Trigger>
  48. </ControlTemplate.Triggers>
  49. </ControlTemplate>
  50. </Setter.Value>
  51. </Setter>
  52. </Style>
  53. <Style TargetType="{x:Type Button}" x:Key="HamburgerMenuItemBtn">
  54. <Setter Property="Background" Value="Transparent"/>
  55. <Setter Property="Foreground" Value="#373737"/>
  56. <Setter Property="FontSize" Value="15"/>
  57. <Setter Property="SnapsToDevicePixels" Value="True"/>
  58. <Setter Property="MinHeight" Value="40"/>
  59. <Setter Property="Cursor" Value="Hand"/>
  60. <Setter Property="Template">
  61. <Setter.Value>
  62. <ControlTemplate TargetType="{x:Type Button}">
  63. <Border BorderThickness="0 0 0 1" BorderBrush="#373737">
  64. <Grid>
  65. <TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="NoWrap" TextAlignment="Center"/>
  66. </Grid>
  67. </Border>
  68. <ControlTemplate.Triggers>
  69. <Trigger Property="IsMouseOver" Value="True">
  70. <Setter Property="Background" Value="#cccdc6"/>
  71. <Setter Property="Foreground" Value="Black" />
  72. </Trigger>
  73. <Trigger Property="IsPressed" Value="True">
  74. <Setter Property="Background" Value="#e8e9eb" />
  75. <Setter Property="Foreground" Value="White" />
  76. </Trigger>
  77. </ControlTemplate.Triggers>
  78. </ControlTemplate>
  79. </Setter.Value>
  80. </Setter>
  81. </Style>
  82. <Style TargetType="{x:Type TextBlock}" x:Key="OperationSign">
  83. <Setter Property="HorizontalAlignment" Value="Center"/>
  84. <Setter Property="VerticalAlignment" Value="Center"/>
  85. <Setter Property="Foreground" Value="#373737"/>
  86. <Setter Property="FontSize" Value="40"/>
  87. <Setter Property="FontWeight" Value="SemiBold"/>
  88. </Style>
  89. </Window.Resources>
  90. <Grid>
  91. <Grid.RowDefinitions>
  92. <RowDefinition/>
  93. <RowDefinition Height="4*"/>
  94. <RowDefinition/>
  95. </Grid.RowDefinitions>
  96. <!-- CurtainMenu -->
  97. <Grid x:Name="CurtainMenu" Panel.ZIndex="1" Grid.Row="0" Grid.RowSpan="3" Width="0" HorizontalAlignment="Left" Background="#FFE8E9EB" Opacity="0.95">
  98. <StackPanel Margin="0 70 0 0" Orientation="Vertical">
  99. <Button x:Name="BtnAddition" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnAddition_Click"/>
  100. <Button x:Name="BtnDifference" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnDifference_Click"/>
  101. <Button x:Name="BtnMultiplicationOnScalar" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnMultiplicationOnScalar_Click"/>
  102. <Button x:Name="BtnTransposition" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnTransposition_Click"/>
  103. <Button x:Name="BtnMultiplicationOnTransposed" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnMultiplicationOnTransposed_Click"/>
  104. <Button x:Name="BtnRowsReplace" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnRowsReplace_Click"/>
  105. <Button x:Name="BtnRowsReplaceOnTranspositionVector" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnRowsReplaceOnTranspositionVector_Click"/>
  106. <Button x:Name="BtnInverse" Style="{StaticResource HamburgerMenuItemBtn}" Click="BtnInverse_Click"/>
  107. </StackPanel>
  108. </Grid>
  109. <!-- Hamburger Button -->
  110. <Button x:Name="BtnHamburgerMenu" Style="{StaticResource HamburgerBtn}" Panel.ZIndex="1" MinHeight="70" MaxHeight="70" MinWidth="70" MaxWidth="70" Cursor="Hand" Focusable="False" VerticalAlignment="Top" HorizontalAlignment="Left" Click="BtnHamburgerMenu_Click"/>
  111. <!-- Addition -->
  112. <Grid x:Name="GridContentAddition" Grid.RowSpan="3" Visibility="Collapsed">
  113. <Grid.RowDefinitions>
  114. <RowDefinition/>
  115. <RowDefinition Height="4*"/>
  116. <RowDefinition/>
  117. </Grid.RowDefinitions>
  118. <!-- UpperBody -->
  119. <Grid Grid.Row="0">
  120. <Grid.ColumnDefinitions>
  121. <ColumnDefinition Width="0.1*"/>
  122. <ColumnDefinition/>
  123. </Grid.ColumnDefinitions>
  124. <Grid Grid.Column="1">
  125. <Grid.ColumnDefinitions>
  126. <ColumnDefinition/>
  127. <ColumnDefinition/>
  128. </Grid.ColumnDefinitions>
  129. <StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
  130. <TextBlock Text="Количество строк: " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="24"/>
  131. <TextBox MinHeight="30" MinWidth="30" VerticalAlignment="Center" HorizontalAlignment="Center" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" MaxLength="1"/>
  132. </StackPanel>
  133. <StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
  134. <TextBlock Text="Количество столбцов: " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="24"/>
  135. <TextBox MinHeight="30" MinWidth="30" VerticalAlignment="Center" HorizontalAlignment="Center" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" MaxLength="1"/>
  136. </StackPanel>
  137. </Grid>
  138. </Grid>
  139. <!-- MidlleBody -->
  140. <Grid Grid.Row="1">
  141. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  142. <Grid>
  143. <Grid.ColumnDefinitions>
  144. <ColumnDefinition/>
  145. <ColumnDefinition Width="0.05*"/>
  146. <ColumnDefinition/>
  147. <ColumnDefinition Width="0.05*"/>
  148. <ColumnDefinition/>
  149. </Grid.ColumnDefinitions>
  150. <Grid x:Name="GridAdditionFrstTerm" Grid.Column="0">
  151. </Grid>
  152. <TextBlock Text="+" Grid.Column="1" Style="{StaticResource OperationSign}"/>
  153. <Grid x:Name="GridAdditionScndTerm" Grid.Column="2">
  154. </Grid>
  155. <TextBlock Text="=" Grid.Column="3" Style="{StaticResource OperationSign}"/>
  156. <Grid x:Name="GridAdditionResult" Grid.Column="4">
  157. </Grid>
  158. </Grid>
  159. </Border>
  160. </Grid>
  161. <!-- BottomBody -->
  162. <Grid Grid.Row="2">
  163. </Grid>
  164. </Grid> <!-- Addition -->
  165. <!-- Difference -->
  166. <Grid x:Name="GridContentDifference" Grid.RowSpan="3" Visibility="Collapsed">
  167. <Grid.RowDefinitions>
  168. <RowDefinition/>
  169. <RowDefinition Height="4*"/>
  170. <RowDefinition/>
  171. </Grid.RowDefinitions>
  172. <!-- UpperBody -->
  173. <Grid Grid.Row="0">
  174. <Grid.ColumnDefinitions>
  175. <ColumnDefinition Width="0.1*"/>
  176. <ColumnDefinition/>
  177. </Grid.ColumnDefinitions>
  178. </Grid>
  179. <!-- MidlleBody -->
  180. <Grid Grid.Row="1">
  181. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  182. <Grid>
  183. <Grid.ColumnDefinitions>
  184. <ColumnDefinition/>
  185. <ColumnDefinition Width="0.05*"/>
  186. <ColumnDefinition/>
  187. <ColumnDefinition Width="0.05*"/>
  188. <ColumnDefinition/>
  189. </Grid.ColumnDefinitions>
  190. <Grid x:Name="GridDifferenceFrstTerm" Grid.Column="0">
  191. </Grid>
  192. <TextBlock Text="-" Grid.Column="1" Style="{StaticResource OperationSign}"/>
  193. <Grid x:Name="GridDifferenceScndTerm" Grid.Column="2">
  194. </Grid>
  195. <TextBlock Text="=" Grid.Column="3" Style="{StaticResource OperationSign}"/>
  196. <Grid x:Name="GridDifferenceResult" Grid.Column="4">
  197. </Grid>
  198. </Grid>
  199. </Border>
  200. </Grid>
  201. <!-- BottomBody -->
  202. <Grid Grid.Row="2">
  203. </Grid>
  204. </Grid> <!-- Difference -->
  205. <!-- MultiplicationOnScalar -->
  206. <Grid x:Name="GridContentMultiplication" Grid.RowSpan="3" Visibility="Collapsed">
  207. <Grid.RowDefinitions>
  208. <RowDefinition/>
  209. <RowDefinition Height="4*"/>
  210. <RowDefinition/>
  211. </Grid.RowDefinitions>
  212. <!-- UpperBody -->
  213. <Grid Grid.Row="0">
  214. <Grid.ColumnDefinitions>
  215. <ColumnDefinition Width="0.1*"/>
  216. <ColumnDefinition/>
  217. </Grid.ColumnDefinitions>
  218. </Grid>
  219. <!-- MidlleBody -->
  220. <Grid Grid.Row="1">
  221. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  222. <Grid>
  223. <Grid.ColumnDefinitions>
  224. <ColumnDefinition/>
  225. <ColumnDefinition Width="0.05*"/>
  226. <ColumnDefinition Width="0.3*"/>
  227. <ColumnDefinition Width="0.05*"/>
  228. <ColumnDefinition/>
  229. </Grid.ColumnDefinitions>
  230. <Grid x:Name="GridMultiplicationOnScalarFrstTerm" Grid.Column="0">
  231. </Grid>
  232. <TextBlock Text="*" Grid.Column="1" Style="{StaticResource OperationSign}" Margin="0 15 0 0"/>
  233. <TextBox x:Name="TextBoxMultiplicationOnScalarScndTerm" Grid.Column="2" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="20" FontWeight="SemiBold" MaxLength="8"/>
  234. <TextBlock Text="=" Grid.Column="3" Style="{StaticResource OperationSign}"/>
  235. <Grid x:Name="GridMultiplicationOnScalarResult" Grid.Column="4">
  236. </Grid>
  237. </Grid>
  238. </Border>
  239. </Grid>
  240. <!-- BottomBody -->
  241. <Grid Grid.Row="2">
  242. </Grid>
  243. </Grid> <!-- MultiplicationOnScalar -->
  244. <!-- Transposition -->
  245. <Grid x:Name="GridContentTranspose" Grid.RowSpan="3" Visibility="Collapsed">
  246. <Grid.RowDefinitions>
  247. <RowDefinition/>
  248. <RowDefinition Height="4*"/>
  249. <RowDefinition/>
  250. </Grid.RowDefinitions>
  251. <!-- UpperBody -->
  252. <Grid Grid.Row="0">
  253. <Grid.ColumnDefinitions>
  254. <ColumnDefinition Width="0.1*"/>
  255. <ColumnDefinition/>
  256. </Grid.ColumnDefinitions>
  257. </Grid>
  258. <!-- MidlleBody -->
  259. <Grid Grid.Row="1">
  260. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  261. <Grid>
  262. <Grid.ColumnDefinitions>
  263. <ColumnDefinition/>
  264. <ColumnDefinition Width="0.1*"/>
  265. <ColumnDefinition/>
  266. </Grid.ColumnDefinitions>
  267. <Grid x:Name="GridTransposeFrom" Grid.Column="0">
  268. </Grid>
  269. <TextBlock Text="=>" Grid.Column="1" Style="{StaticResource OperationSign}"/>
  270. <Grid x:Name="GridTransposed" Grid.Column="2">
  271. </Grid>
  272. </Grid>
  273. </Border>
  274. </Grid>
  275. <!-- BottomBody -->
  276. <Grid Grid.Row="2">
  277. </Grid>
  278. </Grid> <!-- Transposition -->
  279. <!-- MultiplicationOnTransposed -->
  280. <Grid x:Name="GridContentMultiplicationOnTransposed" Grid.RowSpan="3" Visibility="Collapsed">
  281. <Grid.RowDefinitions>
  282. <RowDefinition/>
  283. <RowDefinition Height="4*"/>
  284. <RowDefinition/>
  285. </Grid.RowDefinitions>
  286. <!-- UpperBody -->
  287. <Grid Grid.Row="0">
  288. <Grid.ColumnDefinitions>
  289. <ColumnDefinition Width="0.1*"/>
  290. <ColumnDefinition/>
  291. </Grid.ColumnDefinitions>
  292. </Grid>
  293. <!-- MidlleBody -->
  294. <Grid Grid.Row="1">
  295. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  296. <Grid>
  297. <Grid.ColumnDefinitions>
  298. <ColumnDefinition/>
  299. <ColumnDefinition Width="0.1*"/>
  300. <ColumnDefinition/>
  301. </Grid.ColumnDefinitions>
  302. <Grid x:Name="GridMultiplicationOnTransposedTerm" Grid.Column="0">
  303. </Grid>
  304. <TextBlock Text="=>" Grid.Column="1" Style="{StaticResource OperationSign}"/>
  305. <Grid x:Name="GridMultiplicationOnTransposedResult" Grid.Column="2">
  306. </Grid>
  307. </Grid>
  308. </Border>
  309. </Grid>
  310. <!-- BottomBody -->
  311. <Grid Grid.Row="2">
  312. </Grid>
  313. </Grid> <!-- MultiplicationOnTransposed -->
  314. <!-- RowsReplace -->
  315. <Grid x:Name="GridContentRowsReplace" Grid.RowSpan="3" Visibility="Collapsed">
  316. <Grid.RowDefinitions>
  317. <RowDefinition/>
  318. <RowDefinition Height="4*"/>
  319. <RowDefinition/>
  320. </Grid.RowDefinitions>
  321. <!-- UpperBody -->
  322. <Grid Grid.Row="0">
  323. <Grid.ColumnDefinitions>
  324. <ColumnDefinition Width="0.1*"/>
  325. <ColumnDefinition/>
  326. </Grid.ColumnDefinitions>
  327. </Grid>
  328. <!-- MidlleBody -->
  329. <Grid Grid.Row="1">
  330. <Border Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="0 1 0 1">
  331. <Grid>
  332. <Grid.ColumnDefinitions>
  333. <ColumnDefinition/>
  334. <ColumnDefinition Width="0.4*"/>
  335. <ColumnDefinition/>
  336. </Grid.ColumnDefinitions>
  337. <Grid x:Name="GridRowsReplaceMatrix" Grid.Column="0">
  338. </Grid>
  339. <Grid Grid.Column="1">
  340. <Grid.RowDefinitions>
  341. <RowDefinition/>
  342. <RowDefinition/>
  343. <RowDefinition/>
  344. </Grid.RowDefinitions>
  345. <TextBox x:Name="TextBoxRowReplaceFrstTerm" Grid.Row="0" Width="50" Height="50" HorizontalAlignment="Center" VerticalAlignment="Bottom" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="20" FontWeight="SemiBold" MaxLength="2"/>
  346. <TextBlock Text="=>" Grid.Row="1" Style="{StaticResource OperationSign}"/>
  347. <TextBox x:Name="TextBoxRowReplaceScndTerm" Grid.Row="2" Width="50" Height="50" HorizontalAlignment="Center" VerticalAlignment="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="20" FontWeight="SemiBold" MaxLength="2"/>
  348. </Grid>
  349. <Grid x:Name="GridRowsReplaceResult" Grid.Column="2">
  350. </Grid>
  351. </Grid>
  352. </Border>
  353. </Grid>
  354. <!-- BottomBody -->
  355. <Grid Grid.Row="2">
  356. </Grid>
  357. </Grid> <!-- RowsReplace -->
  358. </Grid>
  359. </Window>