Advertisement
Guest User

Untitled

a guest
Feb 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. public class PipeControl : ItemsControl
  2. {
  3. static PipeControl()
  4. {
  5. DefaultStyleKeyProperty.OverrideMetadata(typeof(PipeControl), new FrameworkPropertyMetadata(typeof(PipeControl)));
  6. }
  7.  
  8. public PipeControl()
  9. {
  10. Checkers = new ObservableCollection<Checker>();
  11. Checkers.Add(new Checker());
  12. Checkers.Add(new Checker());
  13. Checkers.Add(new Checker());
  14. Checkers.Add(new Checker());
  15. Checkers.Add(new Checker());
  16. }
  17.  
  18. public ObservableCollection<Checker> Checkers
  19. {
  20. get;
  21. set;
  22. }
  23. }
  24.  
  25. <Style TargetType="{x:Type local:PipeControl}">
  26. <Setter Property="Template">
  27. <Setter.Value>
  28. <ControlTemplate TargetType="{x:Type local:PipeControl}">
  29. <Border Background="{TemplateBinding Background}"
  30. BorderBrush="{TemplateBinding BorderBrush}"
  31. BorderThickness="{TemplateBinding BorderThickness}">
  32. </Border>
  33. </ControlTemplate>
  34. </Setter.Value>
  35. </Setter>
  36.  
  37. <Setter Property="ItemTemplate">
  38. <Setter.Value>
  39. <DataTemplate DataType="{x:Type local:Checker}">
  40. <Ellipse Fill="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
  41. </DataTemplate>
  42. </Setter.Value>
  43. </Setter>
  44.  
  45. <Setter Property="ItemsSource" Value="{Binding Checkers,RelativeSource={RelativeSource Self}}"/>
  46.  
  47. <!-- Just a Precaution its the default panel any ways -->
  48. <Setter Property="ItemsPanel">
  49. <Setter.Value>
  50. <ItemsPanelTemplate>
  51. <StackPanel />
  52. </ItemsPanelTemplate>
  53. </Setter.Value>
  54. </Setter>
  55.  
  56. </Style>
  57.  
  58. public class PipeControl : ItemsControl
  59. {
  60. public ObservableCollection<Checker> Checkers { get; set; }
  61. static PipeControl()
  62. {
  63. DefaultStyleKeyProperty.OverrideMetadata(typeof(PipeControl), new FrameworkPropertyMetadata(typeof(PipeControl)));
  64. }
  65. public PipeControl()
  66. {
  67. Checkers = new ObservableCollection<Checker>();
  68. Checkers.Add(new Checker());
  69. Checkers.Add(new Checker());
  70. Checkers.Add(new Checker());
  71. Checkers.Add(new Checker());
  72. Checkers.Add(new Checker());
  73. ItemsSource = Checkers;
  74. }
  75. }
  76.  
  77. <Style TargetType="{x:Type local:PipeControl}">
  78. <Setter Property="Template">
  79. <Setter.Value>
  80. <ControlTemplate TargetType="{x:Type local:PipeControl}">
  81. <Border Background="{TemplateBinding Background}"
  82. BorderBrush="{TemplateBinding BorderBrush}"
  83. BorderThickness="{TemplateBinding BorderThickness}">
  84. <ItemsPresenter />
  85. </Border>
  86. </ControlTemplate>
  87. </Setter.Value>
  88. </Setter>
  89. <Setter Property="ItemTemplate">
  90. <Setter.Value>
  91. <DataTemplate DataType="{x:Type local:Checker}">
  92. <Ellipse Width="25"
  93. Height="25"
  94. HorizontalAlignment="Stretch"
  95. VerticalAlignment="Stretch"
  96. Fill="Red" />
  97. </DataTemplate>
  98. </Setter.Value>
  99. </Setter>
  100. <Setter Property="ItemsPanel">
  101. <Setter.Value>
  102. <ItemsPanelTemplate>
  103. <StackPanel Orientation="Horizontal" />
  104. </ItemsPanelTemplate>
  105. </Setter.Value>
  106. </Setter>
  107. </Style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement