Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.39 KB | None | 0 0
  1. <Window x:Class="WPF_Lab1_Wed.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:WPF_Lab1_Wed"
  7. mc:Ignorable="d"
  8. ResizeMode="NoResize"
  9. Title="Windows Presentation Foundation – Lab #1" Height="575" Width="400">
  10. <Window.Resources>
  11. <!--For Description-->
  12. <ControlTemplate x:Key="validationTemplate">
  13. <DockPanel>
  14. <Border Name="validationBorder" BorderBrush="Red" BorderThickness="2" Padding="1" CornerRadius="3">
  15. <Border.Resources>
  16. <Storyboard x:Key="_blink">
  17. <ColorAnimationUsingKeyFrames AutoReverse="True" BeginTime="00:00:00"
  18. Storyboard.TargetName="validationBorder"
  19. Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
  20. RepeatBehavior="Forever">
  21. <SplineColorKeyFrame KeyTime="00:00:00.5" Value="#00FF0000"/>
  22. </ColorAnimationUsingKeyFrames>
  23. </Storyboard>
  24. </Border.Resources>
  25. <Border.Triggers>
  26. <EventTrigger RoutedEvent="FrameworkElement.Loaded">
  27. <BeginStoryboard Storyboard="{StaticResource _blink}" />
  28. </EventTrigger>
  29. </Border.Triggers>
  30. </Border>
  31. </DockPanel>
  32. </ControlTemplate>
  33.  
  34. <!--For Description-->
  35. <Style x:Key="highlightValidationError" >
  36. <Style.Triggers>
  37. <Trigger Property="Validation.HasError" Value="True">
  38. <Setter Property="TextBox.Background" Value="Pink" />
  39. </Trigger>
  40. </Style.Triggers>
  41. </Style>
  42.  
  43. <!--For Placeholder-->
  44. <Style x:Key="placeHolder" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
  45. <Setter Property="Template">
  46. <Setter.Value>
  47. <ControlTemplate TargetType="{x:Type TextBox}">
  48. <Grid>
  49. <TextBox Text="{Binding Path=Text,
  50. RelativeSource={RelativeSource TemplatedParent},
  51. Mode=TwoWay,
  52. UpdateSourceTrigger=PropertyChanged}"
  53. x:Name="textSource"
  54. Background="Transparent"
  55. Panel.ZIndex="2" />
  56. <TextBox Text="{TemplateBinding Tag}" Background="{TemplateBinding Background}" Panel.ZIndex="1" HorizontalContentAlignment="Center" FontSize="14">
  57. <TextBox.Style>
  58. <Style TargetType="{x:Type TextBox}">
  59. <Setter Property="Foreground" Value="Transparent"/>
  60. <Style.Triggers>
  61. <DataTrigger Binding="{Binding Path=Text, Source={x:Reference textSource}}" Value="">
  62. <Setter Property="Foreground" Value="LightGray"/>
  63. </DataTrigger>
  64. </Style.Triggers>
  65. </Style>
  66. </TextBox.Style>
  67. </TextBox>
  68. </Grid>
  69. </ControlTemplate>
  70. </Setter.Value>
  71. </Setter>
  72. </Style>
  73. </Window.Resources>
  74.  
  75. <!--Start From Here-->
  76. <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
  77. <StackPanel Orientation ="Vertical">
  78. <Label FontSize="20" HorizontalAlignment="Center">New IT Job Offer</Label>
  79. <Grid>
  80. <Grid.RowDefinitions>
  81. <RowDefinition Height="auto"></RowDefinition>
  82. <RowDefinition Height="auto"></RowDefinition>
  83. <RowDefinition Height="auto"></RowDefinition>
  84. </Grid.RowDefinitions>
  85. <GroupBox Header="Job Title">
  86. <TextBox Style="{StaticResource placeHolder}" Tag="Job Title" ></TextBox>
  87. </GroupBox>
  88.  
  89. <GroupBox Header="Experience" Grid.Row="1">
  90. <Grid Margin="50,0,50,0">
  91. <Grid.ColumnDefinitions>
  92. <ColumnDefinition Width="*"></ColumnDefinition>
  93. <ColumnDefinition Width="*"></ColumnDefinition>
  94. <ColumnDefinition Width="*"></ColumnDefinition>
  95. </Grid.ColumnDefinitions>
  96. <RadioButton GroupName="Experience">Junior</RadioButton>
  97. <RadioButton GroupName="Experience" Grid.Column="1">Middle</RadioButton>
  98. <RadioButton GroupName="Experience" IsChecked="True" Grid.Column="2">Senior</RadioButton>
  99. </Grid>
  100. </GroupBox>
  101.  
  102. <GroupBox Header="Category" Grid.Row="2">
  103. <ComboBox SelectedIndex="0" Name="categoryCombo" ></ComboBox>
  104. </GroupBox>
  105. </Grid>
  106.  
  107. <GroupBox Header="Description" Height="100">
  108.  
  109. <TextBox Validation.ErrorTemplate="{StaticResource validationTemplate}" Style="{StaticResource highlightValidationError}">
  110. <TextBox.Text>
  111. <Binding Path="SomeString" UpdateSourceTrigger="PropertyChanged">
  112. <Binding.ValidationRules>
  113. <local:StringLengthValidationRule MaxLength="5" />
  114. </Binding.ValidationRules>
  115. </Binding>
  116. </TextBox.Text>
  117. </TextBox>
  118. </GroupBox>
  119. <Grid>
  120. <Grid.ColumnDefinitions >
  121. <ColumnDefinition Width ="*" />
  122. <ColumnDefinition Width ="*" />
  123. <ColumnDefinition Width ="100" />
  124. </Grid.ColumnDefinitions >
  125. <GroupBox Header="Salary From" Margin="0,0,5,0">
  126. <TextBox Name="safrom" HorizontalContentAlignment="Right"></TextBox>
  127. </GroupBox>
  128. <GroupBox Header="Salary To" Grid.Column="1" Margin="0,0,5,0">
  129. <TextBox Name="sato" HorizontalContentAlignment="Right"></TextBox>
  130. </GroupBox>
  131. <GroupBox Header="Currency" Grid.Column="2">
  132. <ComboBox SelectedIndex="0" Name="currencyCombo"></ComboBox>
  133. </GroupBox>
  134. </Grid>
  135. <Grid>
  136. <Grid.ColumnDefinitions >
  137. <ColumnDefinition Width ="*"/>
  138. <ColumnDefinition Width ="*"/>
  139. </Grid.ColumnDefinitions >
  140. <GroupBox Header="Date of offer availability:" Margin="0,0,5,0">
  141. <DatePicker></DatePicker>
  142. </GroupBox>
  143. <GroupBox Header="Home Office Days" Grid.Column="1">
  144. <Grid>
  145. <Grid.ColumnDefinitions >
  146. <ColumnDefinition Width ="*" />
  147. <ColumnDefinition Width ="50" />
  148. </Grid.ColumnDefinitions >
  149. <Slider Name ="days"
  150. Minimum="1"
  151. Maximum="5"
  152. Value="0"
  153. IsSnapToTickEnabled="True"
  154. TickFrequency="1"/>
  155. <TextBox Grid.Column ="1" Text ="{Binding ElementName=days, Path=Value, Mode=TwoWay}" />
  156. </Grid>
  157. </GroupBox>
  158. </Grid>
  159. <Grid>
  160. <Grid.ColumnDefinitions >
  161. <ColumnDefinition Width ="*"/>
  162. <ColumnDefinition Width ="*"/>
  163. </Grid.ColumnDefinitions >
  164. <Grid.RowDefinitions>
  165. <RowDefinition Height="auto"></RowDefinition>
  166. <RowDefinition Height="auto"></RowDefinition>
  167. </Grid.RowDefinitions>
  168. <GroupBox Header="Office Open From" Margin="0,0,5,0">
  169. <ComboBox SelectedIndex="0" Name="hoursFrom"></ComboBox>
  170. </GroupBox>
  171. <GroupBox Header="Office Open To" Grid.Column="1">
  172. <ComboBox SelectedIndex="0" Name="hoursTo"></ComboBox>
  173. </GroupBox>
  174. <Button Height="50" Grid.Row="1" Margin="20,0,5,0" Click="Button_Click">Save</Button>
  175. <Button Height="50" Grid.Row="1" Grid.Column="1" Margin="0,0,20,0">Clear</Button>
  176. </Grid>
  177.  
  178. </StackPanel>
  179.  
  180. </ScrollViewer>
  181. </Window>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement