Reputation: 503
I implemented following List:
private List<Ellipse> ellipsen = new List<Ellipse>();
My intention is to put all properties of Ellipses, which are implemented like this:
<Window x:Class="Halma.MainWindow"
WindowStyle="ToolWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Halma"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
mc:Ignorable="d"
Title="Halma" Height="900" Width="1200">
<DockPanel LastChildFill="True">
<DockPanel DockPanel.Dock="TOP" LastChildFill="True">
<Button DockPanel.Dock="Left" FontSize="14" Margin="3" Width="100" Click="Button_Click_0">Beenden</Button>
<TextBlock FontSize="20" VerticalAlignment="Center" Text="Koordinaten" x:Name="TextBlock_Status_1" Canvas.Left="2" Canvas.Top="473" Height="58" Width="592"/>
<TextBlock FontSize="14" VerticalAlignment="Center" Text="Spielstein" x:Name="TextBlock_Status_2" Canvas.Left="2" Canvas.Top="473" Height="30" Width="592"/>
</DockPanel>
<Canvas>
<i:Interaction.Behaviors>
<local:Brett/>
</i:Interaction.Behaviors>
</Canvas>
<Canvas Name="Halma">
<Canvas.Children>
<Ellipse x:Name="R0C0" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="385" Canvas.Top="80" />
<Ellipse x:Name="R0C1" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="385" Canvas.Top="135" />
<Ellipse x:Name="R0C2" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="385" Canvas.Top="195" />
<Ellipse x:Name="R0C3" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="385" Canvas.Top="255" />
<Ellipse x:Name="R0C4" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="385" Canvas.Top="305" />
<Ellipse x:Name="R0C5" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="435" Canvas.Top="110" />
<Ellipse x:Name="R0C6" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="435" Canvas.Top="165" />
<Ellipse x:Name="R0C7" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="435" Canvas.Top="225" />
<Ellipse x:Name="R0C8" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="435" Canvas.Top="280" />
<Ellipse x:Name="R0C9" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="485" Canvas.Top="140" />
<Ellipse x:Name="R0C10" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="485" Canvas.Top="200" />
<Ellipse x:Name="R0C11" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="485" Canvas.Top="255" />
<Ellipse x:Name="R0C12" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="535" Canvas.Top="170" />
<Ellipse x:Name="R0C13" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="535" Canvas.Top="220" />
<Ellipse x:Name="R0C14" Stroke="Black" StrokeThickness="2" Fill="Violet" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="585" Canvas.Top="195" />
<Ellipse x:Name="L0C0" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="585" Canvas.Top="655" />
<Ellipse x:Name="L0C1" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="635" Canvas.Top="625" />
<Ellipse x:Name="L0C2" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="685" Canvas.Top="595" />
<Ellipse x:Name="L0C3" Stroke="Brown" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="735" Canvas.Top="565" />
<Ellipse x:Name="L0C14" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="735" Canvas.Top="630" />
<Ellipse x:Name="L0C7" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="735" Canvas.Top="695" />
<Ellipse x:Name="L0C4" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="785" Canvas.Top="535" />
<Ellipse x:Name="L0C5" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="635" Canvas.Top="685" />
<Ellipse x:Name="L0C6" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="685" Canvas.Top="655" />
<Ellipse x:Name="L0C8" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="785" Canvas.Top="595" />
<Ellipse x:Name="L0C9" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="685" Canvas.Top="715" />
<Ellipse x:Name="L0c10" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="740" Canvas.Top="745" />
<Ellipse x:Name="L0C11" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="785" Canvas.Top="770" />
<Ellipse x:Name="L0C12" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="785" Canvas.Top="715" />
<Ellipse x:Name="L0C13" Stroke="Black" StrokeThickness="2" Fill="Yellow" MouseDown="Ellipse_MouseDown" MouseMove="rect_MouseMove" MouseLeftButtonDown="rect_MouseLeftButtonDown" MouseLeftButtonUp="rect_MouseLeftButtonUp" Height="30" Width="30" Canvas.Left="785" Canvas.Top="660" />
</Canvas.Children>
</Canvas>
</DockPanel>
</Window>
by constructor in upper List.I try like this, but I fail with it. I will get error, that Canvas is no public Instancedefinition for GetEnumerator. Any ideas, how to get my intention achieved?
foreach(Ellipse el in Halma){
ellipsen.Add(el);
}
Rephrasing Following code will throw out error:"Object reference not set to an instance of an object. "
foreach (Ellipse el in Halma.Children){
ellipsen.Add(el);
}
Upvotes: 0
Views: 61
Reputation: 169190
Try this:
public partial class MainWindow : Window
{
private readonly List<Ellipse> ellipsen = new List<Ellipse>();
public MainWindow()
{
InitializeComponent();
foreach (Ellipse el in Halma.Children.OfType<Ellipse>())
{
ellipsen.Add(el);
}
}
}
Upvotes: 1
Reputation: 202
To iterate over a canvas you have to use its children property.
foreach (Ellipse el in Halma.Children)
{
ellipsen.Add(el);
}
Upvotes: 0