/// <summary>
        /// aloitetaan uusi peli, eli tyhjennetään pelialueesta nappulat ja asetetaan
        /// oletusvärit
        /// </summary>
        public void uusiPeli()
        {
            nappulaVari = UserControl1.nappulaVariProperty.DefaultMetadata.DefaultValue.ToString();
            nappulaList.Clear();
            voittoAani.Stop();
            foreach (UIElement child in lautaGrid.Children)
            {
                if (child is OwnCanvas)
                {
                    OwnCanvas canv = (OwnCanvas)child;
                    canv.Background = Brushes.White;
                    foreach (UIElement lapsi in canv.Children)
                    {
                        if (lapsi is Myllynappula.UserControl1)
                        {
                            Myllynappula.UserControl1 nappula = (Myllynappula.UserControl1)lapsi;
                            canv.Children.Remove(lapsi);

                            foreach (UIElement lapsi2 in canv.Children)
                            {
                                if (lapsi2 is CheckBox)
                                {
                                    CheckBox check = (CheckBox)lapsi2;
                                    check.IsChecked = false;
                                }
                            }
                            break;
                        }
                    }
                }
            }
        }
 /// <summary>
 /// metodi nappulan poistamiseksi canvakselta.
 /// Aluksi etitään poistettava nappula gridin sisältämistä canvaksista,
 /// sitten poistetaan kyseinen nappula, sitten etsitään checkboxi jonka päällä
 /// nappula oli ja unchekataan se. Lähdetään breakillä pois, jotta ei suoriteta
 /// turhaan foreach lauseita loppuun.
 /// </summary>
 public void removeChild()
 {
     foreach (UIElement child in lautaGrid.Children)
     {
         if (child is OwnCanvas)
         {
             OwnCanvas canv = (OwnCanvas)child;
             foreach (UIElement lapsi in canv.Children)
             {
                 if (lapsi is Myllynappula.UserControl1)
                 {
                     Myllynappula.UserControl1 nappula = (Myllynappula.UserControl1)lapsi;
                     if (nappula.onkoChecked == true)
                     {
                         canv.Children.Remove(lapsi);
                         nappulaList.Remove(nappula);
                         foreach (UIElement lapsi2 in canv.Children)
                         {
                             if (lapsi2 is CheckBox)
                             {
                                 CheckBox check = (CheckBox)lapsi2;
                                 check.IsChecked = false;
                             }
                         }
                         break;
                     }
                 }
             }
         }
     }
 }
 /// <summary>
 /// Muutetaan canvaksien taustaväri
 /// </summary>
 /// <param name="vari"></param>
 public void setCanvasColor(Brush vari)
 {
     foreach (UIElement child in lautaGrid.Children)
     {
         if (child is OwnCanvas)
         {
             OwnCanvas canvas = (OwnCanvas)child;
             canvas.Background = vari;
         }
     }
 }
        /// <summary>
        /// Hoitaa toistaiseksi nappulan lisäämisen pelikentälle. Lisätään nappula
        /// vain sellaisille paikoille jotka ovat checked tämän clikkauksen jälkeen ja
        /// jotka eivät sisällä jo nappulaa. Tapahtuman pitäisi laueta vain checkboxia
        /// klikatessa. Varmisestaan myös, että vain yksi nappula on valittuna kerrallaan
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lautaGrid_Click(object sender, RoutedEventArgs e)
        {
            //Tässä lisätään pelilaudalle uusi nappula ja bindataan se oikean kokoiseksi
            if (e.OriginalSource is CheckBox && !(e.Source is Myllynappula.UserControl1))
            {
                CheckBox  check = (CheckBox)e.OriginalSource;
                OwnCanvas oma   = (OwnCanvas)check.Parent;

                if (check.IsChecked == true && saakoLisata == true)
                {
                    Myllynappula.UserControl1 uusinappula = new Myllynappula.UserControl1();
                    uusinappula = bindNappula(oma);
                    if (saakoSiirtaa == true)
                    {
                        if (onkoNappulaaChecked() == true)
                        {
                            foreach (Myllynappula.UserControl1 btn in nappulaList)
                            {
                                if (btn.onkoChecked == true)
                                {
                                    uusinappula = btn;
                                    removeChild();
                                    break;
                                }
                            }
                        }
                    }
                    oma.Children.Add(uusinappula);
                    nappulaList.Add(uusinappula); // lisätään nappulat listaan, jotta voidaan seurata lisättyjen nappuloiden checked tilaa
                    if (nappulaList.Count == 5)
                    {
                        soitaAani();
                    }
                    saakoLisata  = false;   // laitetaan false, jotta ei voida lisäillä nappuloita milloin vain
                    saakoSiirtaa = false;
                }
            }

            //Tämä varmistaa, että vain yksi nappula voi olla valittuna/checkattuna kerrallaan.
            //Peruutetaan lisäämis tapahtuma jos painetaan Myllynappulasta
            if (e.Source is Myllynappula.UserControl1)
            {
                saakoLisata  = false;
                saakoSiirtaa = false;
                Myllynappula.UserControl1 checkattuNappula = (Myllynappula.UserControl1)e.Source;
                foreach (Myllynappula.UserControl1 nappula in nappulaList)
                {
                    if (!nappula.Equals(checkattuNappula))
                    {
                        nappula.onkoChecked = false;
                    }
                }
            }
        }
        /// <summary>
        /// Palautetaan bindattu nappula
        /// </summary>
        /// <param name="oma"></param>
        /// <returns></returns>
        public Myllynappula.UserControl1 bindNappula(OwnCanvas oma)
        {
            Myllynappula.UserControl1 uusinappula = new Myllynappula.UserControl1();

            uusinappula.nappulaColor = nappulaVari;

            Binding bindWidht = new Binding("HalfWidth");

            bindWidht.Source = oma;
            bindWidht.Mode   = BindingMode.OneWay;
            bindWidht.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            uusinappula.SetBinding(WidthProperty, bindWidht);

            Binding bindHeight = new Binding("HalfHeight");

            bindHeight.Source = oma;
            bindHeight.Mode   = BindingMode.OneWay;
            bindHeight.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            uusinappula.SetBinding(HeightProperty, bindHeight);

            Binding bindCanvTop = new Binding("OneFourthsHeight");

            bindCanvTop.Source = oma;
            bindCanvTop.Mode   = BindingMode.OneWay;
            bindCanvTop.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            uusinappula.SetBinding(Canvas.TopProperty, bindCanvTop);

            Binding bindCanvLeft = new Binding("OneFourthsWidth");

            bindCanvLeft.Source = oma;
            bindCanvLeft.Mode   = BindingMode.OneWay;
            bindCanvLeft.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            uusinappula.SetBinding(Canvas.LeftProperty, bindCanvLeft);


            return(uusinappula);
        }