using System;
using System.Extensions;
using System.IO;
using System.Windows;
using System.Windows.Extensions;
using System.Windows.Media;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using WpfExtended.Tests.Controls;
using WpfExtended.Tests.Utilities;
namespace WpfExtended.Test
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public readonly static DependencyProperty ImageSourceProperty =
DependencyPropertyExtensions.Register(nameof(ImageSource));
public ImageSource ImageSource
{
get => this.GetTypedValue(ImageSourceProperty);
set => this.SetTypedValue(ImageSourceProperty, value);
}
public MainWindow()
{
InitializeComponent();
this.ImageSource = new BitmapImage(new Uri(Path.GetFullPath("Images/Test.jpg")));
this.BuildEffectsView();
}
private void BuildEffectsView()
{
foreach(var effectType in TypeCrawler.GetTypes())
{
var effect = Activator.CreateInstance(effectType).As();
var image = new CaptionedImage()
{
Width = 300,
Height = 300,
ImageSource = this.ImageSource,
Caption = effect.GetType().Name,
ImageEffect = effect,
BorderBrush = Brushes.LightGray,
BorderThickness = new Thickness(1)
};
this.WrapPanel.Children.Add(image);
}
}
}
}