NumericUpDownPage.xaml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:sys="using:System"
  4. xmlns:converter="using:ControlCatalog.Converter"
  5. xmlns:pages="using:ControlCatalog.Pages"
  6. x:Class="ControlCatalog.Pages.NumericUpDownPage"
  7. x:DataType="pages:NumbersPageViewModel">
  8. <StackPanel Orientation="Vertical" Spacing="4"
  9. MaxWidth="800">
  10. <TextBlock Margin="2" Classes="h2" TextWrapping="Wrap">Numeric up-down control provides a TextBox with button spinners that allow incrementing and decrementing numeric values by using the spinner buttons, keyboard up/down arrows, or mouse wheel.</TextBlock>
  11. <TextBlock Margin="2,5,2,2" FontSize="14" FontWeight="Bold">Features:</TextBlock>
  12. <WrapPanel Margin="-8,0">
  13. <Grid Grid.Row="0" Grid.Column="0" Margin="8" ColumnDefinitions="Auto, Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto">
  14. <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="2">ShowButtonSpinner:</TextBlock>
  15. <CheckBox Grid.Row="0" Grid.Column="1" IsChecked="{Binding #upDown.ShowButtonSpinner}" VerticalAlignment="Center" Margin="2"/>
  16. <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Margin="2">IsReadOnly:</TextBlock>
  17. <CheckBox Grid.Row="1" Grid.Column="1" IsChecked="{Binding #upDown.IsReadOnly}" VerticalAlignment="Center" Margin="2"/>
  18. <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Margin="2">AllowSpin:</TextBlock>
  19. <CheckBox Grid.Row="2" Grid.Column="1" IsChecked="{Binding #upDown.AllowSpin}" VerticalAlignment="Center" Margin="2"/>
  20. <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Margin="2">ClipValueToMinMax:</TextBlock>
  21. <CheckBox Grid.Row="3" Grid.Column="1" IsChecked="{Binding #upDown.ClipValueToMinMax}" VerticalAlignment="Center" Margin="2"/>
  22. </Grid>
  23. <Grid Grid.Row="0" Grid.Column="1" Margin="8" ColumnDefinitions="Auto, 120" RowDefinitions="Auto,Auto,Auto,Auto,Auto">
  24. <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="2">FormatString:</TextBlock>
  25. <ComboBox Grid.Row="0" Grid.Column="1" Items="{Binding Formats}" SelectedItem="{Binding SelectedFormat}"
  26. VerticalAlignment="Center" Margin="2">
  27. <ComboBox.ItemTemplate>
  28. <DataTemplate>
  29. <StackPanel Orientation="Horizontal" Spacing="2">
  30. <TextBlock Text="{Binding Name}"/>
  31. <TextBlock Text="-"/>
  32. <TextBlock Text="{Binding Value}"/>
  33. </StackPanel>
  34. </DataTemplate>
  35. </ComboBox.ItemTemplate>
  36. </ComboBox>
  37. <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Margin="2">ButtonSpinnerLocation:</TextBlock>
  38. <ComboBox Grid.Row="1" Grid.Column="1" Items="{Binding SpinnerLocations}" SelectedItem="{Binding #upDown.ButtonSpinnerLocation}"
  39. VerticalAlignment="Center" Margin="2"/>
  40. <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Margin="2">CultureInfo:</TextBlock>
  41. <ComboBox x:Name="CultureSelector" Grid.Row="2" Grid.Column="1" Items="{Binding Cultures}"
  42. VerticalAlignment="Center" Margin="2"/>
  43. <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Margin="2">Watermark:</TextBlock>
  44. <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding #upDown.Watermark}" VerticalAlignment="Center" Margin="2" />
  45. <TextBlock Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" Margin="2">Text:</TextBlock>
  46. <TextBox Grid.Row="4" Grid.Column="1" Text="{Binding #upDown.Text}" VerticalAlignment="Center" Margin="2" />
  47. </Grid>
  48. <Grid Grid.Row="0" Grid.Column="2" Margin="8" RowDefinitions="Auto,Auto,Auto,Auto,Auto" ColumnDefinitions="Auto, Auto">
  49. <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="10,2,2,2">Minimum:</TextBlock>
  50. <NumericUpDown Grid.Row="0" Grid.Column="1" Value="{Binding #upDown.Minimum}"
  51. NumberFormat="{Binding #upDown.NumberFormat}" VerticalAlignment="Center" Margin="2" HorizontalAlignment="Center"/>
  52. <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Margin="10,2,2,2">Maximum:</TextBlock>
  53. <NumericUpDown Grid.Row="1" Grid.Column="1" Value="{Binding #upDown.Maximum}"
  54. NumberFormat="{Binding #upDown.NumberFormat}" VerticalAlignment="Center" Margin="2" HorizontalAlignment="Center"/>
  55. <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Margin="10,2,2,2">Increment:</TextBlock>
  56. <NumericUpDown Grid.Row="2" Grid.Column="1" Value="{Binding #upDown.Increment}" VerticalAlignment="Center"
  57. Margin="2" HorizontalAlignment="Center"/>
  58. <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Margin="10,2,2,2">Value:</TextBlock>
  59. <NumericUpDown Grid.Row="3" Grid.Column="1" Value="{Binding DecimalValue}" VerticalAlignment="Center"
  60. Margin="2" HorizontalAlignment="Center"/>
  61. </Grid>
  62. </WrapPanel>
  63. <WrapPanel Margin="2,10,2,2">
  64. <StackPanel Orientation="Vertical" Margin="10">
  65. <Label Target="upDown" FontSize="14" FontWeight="Bold" VerticalAlignment="Center">Usage of decimal NumericUpDown:</Label>
  66. <NumericUpDown Name="upDown" Minimum="0" Maximum="10" Increment="0.5"
  67. NumberFormat="{Binding #CultureSelector.SelectedItem, Converter={x:Static pages:NumericUpDownPage.CultureConverter}}"
  68. VerticalAlignment="Center" Value="{Binding DecimalValue}"
  69. Watermark="Enter text" FormatString="{Binding SelectedFormat.Value}"/>
  70. </StackPanel>
  71. <StackPanel Orientation="Vertical" Margin="10">
  72. <Label Target="DoubleUpDown" FontSize="14" FontWeight="Bold" VerticalAlignment="Center">Usage of double NumericUpDown:</Label>
  73. <NumericUpDown Name="DoubleUpDown" Minimum="0" Maximum="10" Increment="0.5"
  74. VerticalAlignment="Center" Value="{Binding DoubleValue}"
  75. Watermark="Enter text" FormatString="{Binding SelectedFormat.Value}"/>
  76. </StackPanel>
  77. <StackPanel Orientation="Vertical" Margin="10">
  78. <Label Target="ValidationUpDown" FontSize="14" FontWeight="Bold" VerticalAlignment="Center">NumericUpDown with Validation Errors:</Label>
  79. <NumericUpDown x:Name="ValidationUpDown" Minimum="0" Maximum="10" Increment="0.5"
  80. VerticalAlignment="Center"
  81. Watermark="Enter text" FormatString="{Binding SelectedFormat.Value}">
  82. <DataValidationErrors.Error>
  83. <sys:Exception />
  84. </DataValidationErrors.Error>
  85. </NumericUpDown>
  86. </StackPanel>
  87. <StackPanel Orientation="Vertical" Margin="10">
  88. <Label Target="HexUpDown" FontSize="14" FontWeight="Bold" VerticalAlignment="Center">NumericUpDown in HEX mode:</Label>
  89. <NumericUpDown x:Name="HexUpDown" Value="0"
  90. VerticalAlignment="Center">
  91. <NumericUpDown.TextConverter>
  92. <converter:HexConverter></converter:HexConverter>
  93. </NumericUpDown.TextConverter>
  94. </NumericUpDown>
  95. </StackPanel>
  96. </WrapPanel>
  97. </StackPanel>
  98. </UserControl>