using OS.Spin.Common; using OS.Spin.View.Windows; using OS.Spin.ViewModle.Flaw; using System; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; namespace OS.Spin.View.MainWindowControls { /// /// UCSnapInfoView.xaml 的交互逻辑 /// public partial class UCSnapInfoView : UserControl { public delegate MFlawSnapView FlawSelected(string id); public FlawSelected EventFlawSelected; public UCSnapInfoView() { InitializeComponent(); AllFlaws = Tmps; _isSelectedInfo = new BitmapImage(new Uri("pack://application:,,,/OS.Spin.View;component/images/selected.png", UriKind.Absolute)); _unSelectedInfo = new BitmapImage(new Uri("pack://application:,,,/OS.Spin.View;component/images/unselected.png", UriKind.Absolute)); } private BitmapImage _isSelectedInfo; private BitmapImage _unSelectedInfo; public static readonly DependencyProperty AllFlawsProperty = DependencyProperty.Register("AllFlaws", typeof(ObservableCollection), typeof(UCSnapInfoView), new PropertyMetadata(default(ObservableCollection))); private ObservableCollection Tmps = new ObservableCollection(); private ObservableCollection AllFlaws { get { return (ObservableCollection)GetValue(AllFlawsProperty); } set { SetValue(AllFlawsProperty, value); } } public void AddFlawSnap(MFlawSnapView flawSnap) { AllFlaws.Add(flawSnap); Flaws.ScrollIntoView(Flaws.Items[Flaws.Items.Count - 1]); } public void Zero() { _isSelected = null; AllFlaws.Clear(); } private Canvas _isSelected = null; private void Snap_MouseDown(object sender, MouseButtonEventArgs e) { try { var canvas = sender as Canvas; MFlawSnapView flawInfo = null; foreach (var x in AllFlaws) { if (x.Id.Equals((string)canvas.Tag)) { flawInfo = x; } } if (null != _isSelected) { if (_isSelected.Equals(canvas)) { var fv = FlawView.GetInstance(flawInfo.SnapInfo.Clone(), flawInfo.FlawName); fv.WindowState = WindowState.Maximized; fv.Topmost = true; fv.Focus(); fv.Show(); return; } _isSelected.Background = new ImageBrush { ImageSource = _unSelectedInfo }; } canvas.Background = new ImageBrush { ImageSource = _isSelectedInfo }; _isSelected = canvas; } catch (Exception ex) { LogisTrac.WriteLog(string.Format("Snap_MouseDown:{0}", ex.Message)); } } } }