using Bro.Common.ImageCanvas;
|
using System;
|
using System.Collections.Generic;
|
using System.Globalization;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using Bro.UI.ViewModel;
|
using Xceed.Wpf.AvalonDock;
|
|
namespace Bro.UI
|
{
|
/// <summary>
|
/// RunningView.xaml 的交互逻辑
|
/// </summary>
|
public partial class RunningView : UserControl
|
{
|
RunningViewModel VM = null;
|
|
public RunningView()
|
{
|
InitializeComponent();
|
|
this.Loaded += (s, e) =>
|
{
|
VM = this.DataContext as RunningViewModel;
|
CreateLayoutDocument();
|
|
VM.Images.CollectionChanged += Images_CollectionChanged;
|
};
|
}
|
|
private void Images_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
|
{
|
CreateLayoutDocument();
|
}
|
|
private void CreateLayoutDocument()
|
{
|
layOutPanes.Children.Clear();
|
|
VM.Images.ToList().ForEach(imgModel =>
|
{
|
Xceed.Wpf.AvalonDock.Layout.LayoutDocumentPane pane = new Xceed.Wpf.AvalonDock.Layout.LayoutDocumentPane();
|
Xceed.Wpf.AvalonDock.Layout.LayoutDocument doc = new Xceed.Wpf.AvalonDock.Layout.LayoutDocument();
|
doc.ContentId = doc.Title = imgModel.CameraName;
|
doc.CanClose = false;
|
doc.CanFloat = doc.CanMove = true;
|
|
ImageCanvas imgCanvas = new ImageCanvas();
|
imgCanvas.DataContext = imgModel;
|
Binding imgBind = new Binding("Image");
|
imgBind.Mode = BindingMode.OneWay;
|
imgCanvas.SetBinding(ImageCanvas.ImageSourceProperty, imgBind);
|
Binding shapeBind = new Binding("Shapes");
|
shapeBind.Mode = BindingMode.OneWay;
|
imgCanvas.SetBinding(ImageCanvas.ShapeListProperty, shapeBind);
|
|
doc.Content = imgCanvas;
|
pane.Children.Add(doc);
|
layOutPanes.Children.Add(pane);
|
});
|
}
|
}
|
}
|