DropdownSetting.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Windows;
  2. using System.Windows.Controls;
  3. using System.Windows.Controls.Primitives;
  4. using System.Windows.Data;
  5. namespace PixiEditor.Models.Tools.ToolSettings.Settings
  6. {
  7. public class DropdownSetting : Setting<object>
  8. {
  9. public DropdownSetting(string name, string[] values, string label)
  10. : base(name)
  11. {
  12. Values = values;
  13. SettingControl = GenerateDropdown();
  14. Value = ((ComboBox)SettingControl).Items[0];
  15. Label = label;
  16. }
  17. public string[] Values { get; set; }
  18. private ComboBox GenerateDropdown()
  19. {
  20. ComboBox combobox = new ComboBox
  21. {
  22. VerticalAlignment = VerticalAlignment.Center
  23. };
  24. GenerateItems(combobox);
  25. Binding binding = new Binding("Value")
  26. {
  27. Mode = BindingMode.TwoWay
  28. };
  29. combobox.SetBinding(Selector.SelectedValueProperty, binding);
  30. return combobox;
  31. }
  32. private void GenerateItems(ComboBox comboBox)
  33. {
  34. for (int i = 0; i < Values.Length; i++)
  35. {
  36. ComboBoxItem item = new ComboBoxItem
  37. {
  38. Content = Values[i]
  39. };
  40. comboBox.Items.Add(item);
  41. }
  42. }
  43. }
  44. }