using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using GeekDesk.ViewModel;
using System.IO;
using GeekDesk.Util;
using GalaSoft.MvvmLight;
using System.Windows.Controls;
using System.Windows.Media;
using System.Collections.ObjectModel;
using WPF.JoshSmith.ServiceProviders.UI;
using DraggAnimatedPanelExample;
using System.ComponentModel;
namespace GeekDesk
{
///
/// MainWindow.xaml 的交互逻辑
///
///
public partial class MainWindow : Window
{
private static MainModel mainModel;
ListViewDragDropManager dragMgr;
ListViewDragDropManager dragMgr2;
public MainWindow()
{
InitializeComponent();
mainModel = new MainModel();
//this.DataContext = mainModel;
//menu.Items = mainModel;
//System.Diagnostics.Process.Start(@"D:\SoftWare\WeGame\wegame.exe");
this.Loaded += Window_Loaded;
this.SizeChanged += MainWindow_Resize;
}
DelegateCommand _swap;
public DelegateCommand SwapCommand
{
get
{
if (_swap == null)
_swap = new DelegateCommand(
(indexes) =>
{
int fromS = indexes[0];
int to = indexes[1];
var elementSource = data.Items[to];
var dragged = data.Items[fromS];
if (fromS > to)
{
data.Items.Remove(dragged);
data.Items.Insert(to, dragged);
}
else
{
data.Items.Remove(dragged);
data.Items.Insert(to, dragged);
}
}
);
return _swap;
}
}
DelegateCommand _swap2;
public DelegateCommand SwapCommand2
{
get
{
if (_swap2 == null)
_swap2 = new DelegateCommand(
(indexes) =>
{
int fromS = indexes[0];
int to = indexes[1];
var elementSource = menu.Items[to];
var dragged = menu.Items[fromS];
if (fromS > to)
{
menu.Items.Remove(dragged);
menu.Items.Insert(to, dragged);
}
else
{
menu.Items.Remove(dragged);
menu.Items.Insert(to, dragged);
}
}
);
return _swap2;
}
}
private void Wrap_Drop(object sender, DragEventArgs e)
{
Array dropObject = (System.Array)e.Data.GetData(DataFormats.FileDrop);
if (dropObject == null) return;
string path = (string)dropObject.GetValue(0);
if (File.Exists(path))
{
// 文件
BitmapImage bi = FileIcon.GetBitmapImage(path);
DataInfos infos = new DataInfos();
infos.Path = path;
infos.BitmapImage = bi;
infos.Name = Path.GetFileNameWithoutExtension(path);
data.Items.Add(infos);
data.Items.Refresh();
}
else if (Directory.Exists(path))
{
//文件夹
}
}
//菜单点击事件
private void menuClick(object sender, MouseButtonEventArgs e)
{
}
///
/// 图标点击事件
///
///
///
private void dataClick(object sender, MouseButtonEventArgs e)
{
//string path = ((StackPanel)sender).Tag.ToString();
//System.Diagnostics.Process.Start(path);
}
///
/// data选中事件 设置不可选中
///
///
///
private void data_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (data.SelectedIndex != -1) data.SelectedIndex = -1;
}
#region Window_Loaded
void Window_Loaded(object sender, RoutedEventArgs e)
{
AppConfig config = CommonCode.GetAppConfig();
this.Width = config.WindowWidth;
this.Height = config.WindowHeight;
this.DataContext = config;
this.menu.Items.Add(new ViewModel.Menu() { menu = "test1" });
this.menu.Items.Add(new ViewModel.Menu() { menu = "test2" });
this.menu.Items.Add(new ViewModel.Menu() { menu = "test3" });
}
#endregion // Window_Loaded
#region Window_Closing
void Window_Closing(object sender, CancelEventArgs e)
{
Rect rect = this.RestoreBounds;
AppConfig config = this.DataContext as AppConfig;
config.WindowWidth = rect.Width;
config.WindowHeight = rect.Height;
CommonCode.SaveAppConfig(config);
}
#endregion // Window_Closing
void MainWindow_Resize(object sender, System.EventArgs e)
{
if (this.DataContext != null)
{
AppConfig config = this.DataContext as AppConfig;
config.WindowWidth = this.Width;
config.WindowHeight = this.Height;
CommonCode.SaveAppConfig(config);
}
}
#region dragMgr_ProcessDrop
// Performs custom drop logic for the top ListView.
void dragMgr_ProcessDrop(object sender, ProcessDropEventArgs