private bool EditNextPicture()
        {
            //Nur ausfuehren wenn mindestens ein Filter aktiv ist
            if (TagControlHandling.IsAFilterActive(wrapPanelTags.Children) == true)
            {
                //Funktion beenden wenn man bereits am rechten Rand ist
                if (currentPicIndex >= pictureList.Count)
                {
                    //Editiermodus beenden
                    DeactivateEditMode();

                    return(false);
                }

                //Kopiere die Datei um
                string newFilePath = FileHandling.CopyFile(currentPicIndex, pictureList[currentPicIndex - 1]);

                //Lege ein XML-Eintrag fuer diese Datei an
                xmlHandling.InsertNewPictureWithTags(newFilePath, TagControlHandling.GetAllActiveTags(wrapPanelTags.Children));

                //Alle Filter zuruecksetzen
                wrapPanelTags = TagControlHandling.ResetActiveFilter(wrapPanelTags);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        private void TraverseThroughPictures(Direction direction)
        {
            //Nur ausfuehren wenn mindestens ein Filter aktiv ist
            if (TagControlHandling.IsAFilterActive(wrapPanelTags.Children) == true || newPictureMode == true)
            {
                //Funktion beenden wenn man bereits am rechten Rand ist
                if ((direction == Direction.Right) &&
                    (currentPicIndex >= pictureList.Count))

                {
                    return;
                }

                //Funktion beenden wenn man bereits am linken Rand ist
                if ((direction == Direction.Left) &&
                    (currentPicIndex <= 1))
                {
                    return;
                }

                //Index verschieben
                if (direction == Direction.Left)
                {
                    currentPicIndex--;
                }
                else
                {
                    currentPicIndex++;
                }

                SetPictureLabels();

                SetImage(currentPicIndex - 1);
            }
        }
        private void MainWindowLoaded(object sender, RoutedEventArgs e)
        {
            //Es muessen die XML-Datei ausgelesen werden (bzw. erstellt wenn nicht vorhanden)
            xmlHandling.ReadXmlTags();
            xmlHandling.ReadXmlPicturesTags();

            //Die ausgelesenen Tags werden erstellt
            wrapPanelTags = TagControlHandling.PlaceTagsOnWrapPanel(wrapPanelTags, xmlHandling.GetAllReadedTags());

            //Maximale Anzahl an Bildern setzen
            labelPicMax.Content = FileHandling.GetFileCount().ToString();
        }
        private void DeactivateEditMode()
        {
            //Bild des Einlesen aendern
            SetButtonReadPicsImage("camera");

            //Modus -> es werden Bilder gefiltert
            newPictureMode = false;

            wrapPanelTags = TagControlHandling.ResetActiveFilter(wrapPanelTags);

            //Liste löschen
            pictureList.Clear();

            currentPicIndex = 0;

            //Label beschriften
            SetPictureLabels();

            //Bild aus Control loeschen
            imageCurrentPic.Source = new BitmapImage();

            //Maximale Anzahl an Bildern setzen
            labelPicMax.Content = FileHandling.GetFileCount().ToString();
        }
        private void TagClickEventEventHandlerMethod(object sender, RoutedEventArgs e)
        {
            if (newPictureMode == false)
            {
                List <Tag> tags = TagControlHandling.GetAllActiveTags(wrapPanelTags.Children);

                //Wenn es angeklickte Filter gibt
                if (tags.Count > 0)
                {
                    pictureList = xmlHandling.GetAllFilteredPictures(tags);

                    currentPicIndex = 1;

                    //Es muessen Bilder gefunden werden
                    if (pictureList.Count > 0)
                    {
                        //Label beschriften
                        SetPictureLabels();

                        SetImage(currentPicIndex - 1);
                    }
                }
            }
        }