public SlideshowWindow(Object effect, Object imagelist)
        {
            InitializeComponent();
            TransitionEffect = effect as Slideshow.ISlideshowEffect;
            Images           = imagelist as ObservableCollection <MainWindow.ImageContainer>;

            ImageRef = new[] { Image1, Image2 };

            timerImageChange          = new DispatcherTimer();
            timerImageChange.Interval = new TimeSpan(0, 0, IntervalTimer);
            timerImageChange.Tick    += new EventHandler(timerImageChange_Tick);
        }
        public MainWindow()
        {
            InitializeComponent();
            PictureView.ItemsSource = images;

            var plugins = Directory.GetFiles(@Directory.GetCurrentDirectory()).Where(f => f.EndsWith(".dll"));

            foreach (var plugin in plugins)
            {
                Assembly DLL = Assembly.LoadFrom(plugin);
                foreach (Type type in DLL.GetExportedTypes())
                {
                    if (typeof(Slideshow.ISlideshowEffect).IsAssignableFrom(type))
                    {
                        if (type.IsInterface)
                        {
                            continue;
                        }
                        Slideshow.ISlideshowEffect effect = Activator.CreateInstance(type) as Slideshow.ISlideshowEffect;
                        if (effect == null)
                        {
                            continue;
                        }
                        else
                        {
                            SlideshowTypes.Add(effect);
                        }
                    }
                }
            }

            SlideshowTypesHeader.ItemsSource   = SlideshowTypes;
            SlideshowEffectsList.ItemsSource   = SlideshowTypes;
            SlideshowEffectsList.SelectedIndex = 0;

            this.Loaded += new RoutedEventHandler(LoadTreeView);
        }