图片管理器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;

namespace Picture
{
    public class MyCommand
    {
        //最小化命令
        public static RoutedCommand SmallCommand = new RoutedCommand();

        //最大化命令
        public static RoutedCommand BigCommand = new RoutedCommand();

        //正常窗口命令
        public static RoutedCommand NormalCommand = new RoutedCommand();

        //关闭命令
        public static RoutedCommand CloseCommand = new RoutedCommand();

        //开始自定义命令
        public static RoutedCommand UpCommand = new RoutedCommand();

        //前一张图片
        public static RoutedCommand BeforeCommand = new RoutedCommand();

        //后一张图片
        public static RoutedCommand AfterCommand = new RoutedCommand();

        //顺时针旋转
        public static RoutedCommand ClockwiseCommand = new RoutedCommand();

        //逆时针旋转
        public static RoutedCommand AntiClockwiseCommand = new RoutedCommand();

        //左右翻转
        public static RoutedCommand LeftAndRightCommand = new RoutedCommand();

        //上下翻转
        public static RoutedCommand AboveAndBelowCommand = new RoutedCommand();

        //放大图片
        public static RoutedCommand AmplificationCommand = new RoutedCommand();

        //缩小图片
        public static RoutedCommand NarrowCommand = new RoutedCommand();

        //幻灯片播放
        public static RoutedCommand SlideCommand = new RoutedCommand();

        //打开文件
        public static RoutedCommand OpenFileCommand = new RoutedCommand();

        //设置
        public static RoutedCommand SetCommand = new RoutedCommand();

        //向左移动
        public static RoutedCommand LeftCommand = new RoutedCommand();

        //向右移动
        public static RoutedCommand RightCommand = new RoutedCommand();

        //主题设置
        public static RoutedCommand ThemeCommand = new RoutedCommand();

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 System.Windows.Interop;
using Microsoft.Win32;
using System.Xml;
using System.Diagnostics;
using System.Collections;
using System.IO;

namespace Picture
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public class LVData
        {
            public string Pic
            {
                get;
                set;
            }
        }
        bool bHelp = true;

        List<LVData> ListPicture = new List<LVData>();
        public MainWindow()
        {
            InitializeComponent();

            LVData iamgebrush1 = new LVData();
            //iamgebrush1.Pic = "D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png";
            //ListPicture.Add(iamgebrush1);

            //LVData iamgebrush2 = new LVData();
            //iamgebrush2.Pic = "D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png";
            //ListPicture.Add(iamgebrush2);

            //ImageBrush iamgebrush3 = new ImageBrush();
            //iamgebrush3.ImageSource = new BitmapImage(new Uri("D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png"));
            //iamgebrush3.Stretch = Stretch.UniformToFill;
            //list.Add(iamgebrush3);

            //ImageBrush iamgebrush4 = new ImageBrush();
            //iamgebrush4.ImageSource = new BitmapImage(new Uri("D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png"));
            //iamgebrush4.Stretch = Stretch.UniformToFill;
            //list.Add(iamgebrush4);

            //ImageBrush iamgebrush5 = new ImageBrush();
            //iamgebrush5.ImageSource = new BitmapImage(new Uri("D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png"));
            //iamgebrush5.Stretch = Stretch.UniformToFill;
            //list.Add(iamgebrush5);

            //ImageBrush iamgebrush6 = new ImageBrush();
            //iamgebrush6.ImageSource = new BitmapImage(new Uri("D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png"));
            //iamgebrush6.Stretch = Stretch.UniformToFill;
            //list.Add(iamgebrush6);

            //LVPicture.ItemsSource = ListPicture;

            //ImageBrush iamgebrush = new ImageBrush();
            //iamgebrush.ImageSource = new BitmapImage(new Uri("D:\\Protect2010\\Picture\\Picture\\Images\\backimage.png"));
            //iamgebrush.Stretch = Stretch.UniformToFill;
            //this.Background = iamgebrush;

            //DesignerHead.Visibility = Visibility.Hidden;

            double height = SystemParameters.WorkArea.Height;
            double width = SystemParameters.WorkArea.Width;
            this.Top = (height - this.Height) / 2;
            this.Left = (width - this.Width) / 2;

            XmlDocument doc = new XmlDocument();
            doc.Load("..\\..\\Configure.xml");
            //if (doc == null)
            //{
            //    MessageBox.Show("null");
            //}
            //else
            //{
            //    XmlNode xn = doc.SelectSingleNode("Configure/zhutua");
            //    bHelp = Convert.ToBoolean(xn.InnerText.ToString());
                
            //}
            //if (bHelp)
            //{
            //    SPanel.Visibility = Visibility.Visible;
            //    PathName.Visibility = Visibility.Visible;
            //}
            //else
            //{
            //    SPanel.Visibility = Visibility.Hidden;
            //    PathName.Visibility = Visibility.Hidden;
            //}
            //Page4 page = new Page4();
            //frame1.Navigate(page);

            Page4 page = new Page4();
            frame1.Navigate(page);
            //frame1.Navigate(new Uri("Page1.xaml", UriKind.Relative));

        }

        private void CloseWindow(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void DragWindow(object sender, MouseButtonEventArgs e)
        {
            this.DragMove();
        }


        protected override void OnSourceInitialized(EventArgs e)   
        {   
            
            base.OnSourceInitialized(e);   
            HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
            if (hwndSource != null)
            {
                hwndSource.AddHook(new HwndSourceHook(this.WndProc));
            }
            else
            {
                MessageBox.Show("df");
            }
        }

        //protected virtual IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        //{
        //    return IntPtr.Zero;
        //}   

        private const int WM_NCHITTEST = 0x0084;   
        private readonly int agWidth = 12; //拐角宽度   
        private readonly int bThickness = 4; // 边框宽度   
        private Point mousePoint = new Point(); //鼠标坐标   


        protected virtual IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)   
        {

                    if (WM_NCHITTEST == msg)
                    {
                        this.mousePoint.X = (lParam.ToInt32() & 0xFFFF);
                        this.mousePoint.Y = (lParam.ToInt32() >> 16);


                        // 窗口左上角   
                        if (this.mousePoint.Y - this.Top <= this.agWidth
                           && this.mousePoint.X - this.Left <= this.agWidth)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTTOPLEFT);
                        }
                        // 窗口左下角       
                        else if (this.ActualHeight + this.Top - this.mousePoint.Y <= this.agWidth
                           && this.mousePoint.X - this.Left <= this.agWidth)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTBOTTOMLEFT);
                        }
                        // 窗口右上角   
                        else if (this.mousePoint.Y - this.Top <= this.agWidth
                           && this.ActualWidth + this.Left - this.mousePoint.X <= this.agWidth)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTTOPRIGHT);
                        }
                        // 窗口右下角   
                        else if (this.ActualWidth + this.Left - this.mousePoint.X <= this.agWidth
                           && this.ActualHeight + this.Top - this.mousePoint.Y <= this.agWidth)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTBOTTOMRIGHT);
                        }
                        // 窗口左侧   
                        else if (this.mousePoint.X - this.Left <= this.bThickness)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTLEFT);
                        }
                        // 窗口右侧   
                        else if (this.ActualWidth + this.Left - this.mousePoint.X <= this.bThickness)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTRIGHT);
                        }
                        // 窗口上方   
                        else if (this.mousePoint.Y - this.Top <= this.bThickness)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTTOP);
                        }
                        // 窗口下方   
                        else if (this.ActualHeight + this.Top - this.mousePoint.Y <= this.bThickness)
                        {
                            handled = true;
                            return new IntPtr((int)HitTest.HTBOTTOM);
                        }
                        else // 窗口移动   
                        {
                            handled = false;
                            return new IntPtr();// ((int)HitTest.HTCAPTION);
                        }
                    }
                    return IntPtr.Zero;
        }   

 
        public enum HitTest:int   
        {   
            HTERROR = -2,   
            HTTRANSPARENT = -1,   
            HTNOWHERE = 0,   
            HTCLIENT = 1,   
            HTCAPTION = 2,   
            HTSYSMENU = 3,   
            HTGROWBOX = 4,   
            HTSIZE = HTGROWBOX,   
            HTMENU = 5,   
            HTHSCROLL = 6,   
            HTVSCROLL = 7,   
            HTMINBUTTON = 8,   
            HTMAXBUTTON = 9,   
            HTLEFT = 10,   
            HTRIGHT = 11,   
            HTTOP = 12,   
            HTTOPLEFT = 13,   
            HTTOPRIGHT = 14,   
            HTBOTTOM = 15,   
            HTBOTTOMLEFT = 16,   
            HTBOTTOMRIGHT = 17,   
            HTBORDER = 18,   
            HTREDUCE = HTMINBUTTON,   
            HTZOOM = HTMAXBUTTON,   
            HTSIZEFIRST = HTLEFT,   
            HTSIZELAST = HTBOTTOMRIGHT,   
            HTOBJECT = 19,   
            HTCLOSE = 20,   
            HTHELP = 21,   
        }

        private void OpenFile(object sender, ExecutedRoutedEventArgs e)
        {
            OpenFileDialog myDialog = new OpenFileDialog();

            myDialog.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF" +
              "|All files (*.*)|*.*";

            myDialog.CheckFileExists = true;
            myDialog.Multiselect = true;

            //DesignerHead.Visibility = Visibility.Visible;

            if (myDialog.ShowDialog() == true)
            {
                //MessageBox.Show(myDialog.FileNames.First());
                BitmapImage Bimage = new BitmapImage(new Uri(myDialog.FileNames.First(), UriKind.Absolute));
                DesignerHead.Source = Bimage;
            }
        }

        private void CloseApp(object sender, ExecutedRoutedEventArgs e)
        {
            this.Close();
        }

        private void cmdClose_Click(object sender, RoutedEventArgs e)
        {
            //SPanel.Visibility = Visibility.Hidden;
            //PathName.Visibility = Visibility.Hidden;
            XmlDocument doc = new XmlDocument();
            doc.Load("..\\..\\Configure.xml");
            if (doc == null)
            {
                MessageBox.Show("null");
            }
            else
            {
                XmlNode xn = doc.SelectSingleNode("Configure/zhutua");
                xn.InnerText = "false";
                doc.Save("..\\..\\Configure.xml");

            }
        }

        //int IAngle = 0;

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            //if (IAngle > 360)
            //{
            //    IAngle = 0;
            //}
            //else
            //{
            //    IAngle += 90;
            //}
            //RotateTransform rotateTransform = new RotateTransform(IAngle);
            //DesignerHead.RenderTransform = rotateTransform;
        }

        private void button4_Click(object sender, RoutedEventArgs e)
        {
            //if (IAngle < -360)
            //{
            //    IAngle = 0;
            //}
            //else
            //{
            //    IAngle -= 90;
            //}
            //RotateTransform rotateTransform = new RotateTransform(IAngle);
            //DesignerHead.RenderTransform = rotateTransform;
        }

        //int IScalex = -1;

        private void button5_Click(object sender, RoutedEventArgs e)
        {
            
            ////RenderTransformOrigin
            //DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);

            //ScaleTransform scaleTransform = new ScaleTransform();
            //scaleTransform.ScaleX = IScalex;
            ////scaleTransform.ScaleY = 1.2;
            ////scaleTransform.CenterX = 0; // DesignerHead.Width / 2;
            ////scaleTransform.CenterY = 0; // DesignerHead.Height / 2;
            //if (-1 == IScalex)
            //{
            //    IScalex = 1;
            //}
            //else
            //{
            //    IScalex = -1;
            //}
            //DesignerHead.RenderTransform = scaleTransform;

        }

        //int IScaley = -1;

        private void button6_Click(object sender, RoutedEventArgs e)
        {
            //DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);

            //ScaleTransform scaletransform = new ScaleTransform();
            //scaletransform.ScaleY = IScaley;
            //if (-1 == IScaley)
            //{
            //    IScaley = 1;
            //}
            //else
            //{
            //    IScaley = -1;
            //}
            //DesignerHead.RenderTransform = scaletransform;
        }



        private bool m_IsMouseLeftButtonDown;

        private void MasterImage_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            Rectangle rectangle = sender as Rectangle;
            if (rectangle == null)
                return;

            rectangle.ReleaseMouseCapture();
            m_IsMouseLeftButtonDown = false;
        }

        private Point m_PreviousMousePoint;

        private void MasterImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Rectangle rectangle = sender as Rectangle;
            if (rectangle == null)
                return;

            rectangle.CaptureMouse();
            m_IsMouseLeftButtonDown = true;
            m_PreviousMousePoint = e.GetPosition(rectangle);
        }

        private void MasterImage_MouseMove(object sender, MouseEventArgs e)
        {
            Rectangle rectangle = sender as Rectangle;
            if (rectangle == null)
                return;
            if (m_IsMouseLeftButtonDown)
                DoImageMove(rectangle, e);
        }

        private void DoImageMove(Rectangle rectangle, MouseEventArgs e)
        {

            //Debug.Assert(e.LeftButton == MouseButtonState.Pressed);
            if (e.LeftButton != MouseButtonState.Pressed)
                return;
            TransformGroup group = MainPanel.FindResource("ImageTransformResource") as TransformGroup;
            Debug.Assert(group != null);
            TranslateTransform transform = group.Children[1] as TranslateTransform;
            Point position = e.GetPosition(rectangle);
            transform.X += position.X - m_PreviousMousePoint.X;
            transform.Y += position.Y - m_PreviousMousePoint.Y;
            m_PreviousMousePoint = position;
        }

        private void MasterImage_MouseWheel(object sender, MouseWheelEventArgs e)
        {
            TransformGroup group = MainPanel.FindResource("ImageTransformResource") as TransformGroup;                        
            Debug.Assert(group != null);
            ScaleTransform transform = group.Children[0] as ScaleTransform;
            DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);
            transform.CenterX = this.Width / 2;
            transform.CenterY = this.Height / 2;
            transform.ScaleX += e.Delta * 0.001;
            transform.ScaleY += e.Delta * 0.001;
        }

        //主题更替
        private void ThemeCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("主题更替");
        }

        //最小化命令
        private void SmallCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            this.WindowState = System.Windows.WindowState.Minimized;
        }

        Button btnBig = new Button();
        Button btnSmall = new Button();
        bool IsNormal = true;
        //最大化命令
        private void BigCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            //正常窗口到最大化
            if (IsNormal)
            {
                this.WindowState = System.Windows.WindowState.Maximized;
                IsNormal = false;
                Button btn = e.OriginalSource as Button;
                btnBig = btn;
                btn.Content = "正  常";
            }
            else 
            {
                this.WindowState = System.Windows.WindowState.Normal;
                IsNormal = true;
                Button btn = e.OriginalSource as Button;
                btnBig = btn;
                btn.Content = "最大化";
            }
        }

        //正常窗口命令
        private void NormalCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            Button btn = e.OriginalSource as Button;
            btnSmall = btn;
            btn.Visibility = Visibility.Hidden;
            btnBig.Visibility = Visibility.Visible;
            this.WindowState = System.Windows.WindowState.Normal;
            Page2 page = new Page2();
            page.WindowHeight = this.Height;
            page.WindowWidth = this.Width;
        }

        //关闭命令
        private void CloseCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            this.Close();
        }

        int IAngle = 0;

        //顺时针翻转
        private void ClockwiseCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);
            if (IAngle > 360)
            {
                IAngle = 0;
            }
            else
            {
                IAngle += 90;
            }
            RotateTransform rotateTransform = new RotateTransform(IAngle);
            DesignerHead.RenderTransform = rotateTransform;
        }

        //逆时针翻转
        private void AntiClockwiseCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);
            if (IAngle < -360)
            {
                IAngle = 0;
            }
            else
            {
                IAngle -= 90;
            }
            RotateTransform rotateTransform = new RotateTransform(IAngle);
            DesignerHead.RenderTransform = rotateTransform;
        }

        int IScalex = -1;

        //左右翻转
        private void LeftAndRightCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);

            ScaleTransform scaleTransform = new ScaleTransform();
            scaleTransform.ScaleX = IScalex;
            //scaleTransform.ScaleY = 1.2;
            //scaleTransform.CenterX = 0; // DesignerHead.Width / 2;
            //scaleTransform.CenterY = 0; // DesignerHead.Height / 2;
            if (-1 == IScalex)
            {
                IScalex = 1;
            }
            else
            {
                IScalex = -1;
            }
            DesignerHead.RenderTransform = scaleTransform;
        }

        int IScaley = -1;

        //上下翻转
        private void AboveAndBelowCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DesignerHead.RenderTransformOrigin = new Point(0.5, 0.5);

            ScaleTransform scaletransform = new ScaleTransform();
            scaletransform.ScaleY = IScaley;
            if (-1 == IScaley)
            {
                IScaley = 1;
            }
            else
            {
                IScaley = -1;
            }
            DesignerHead.RenderTransform = scaletransform;
        }

        //放大图片
        private void AmplificationCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("放大图片");
        }

        //缩小图片
        private void NarrowCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("缩小图片");
        }

        //前一张图片
        private void BeforeCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("前一张图片");
        }

        //后一张图片
        private void AfterCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("后一张图片");
        }

        //幻灯片播放
        private void SlideCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("幻灯片播放");
        }

        //打开文件
        private void OpenFileCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            OpenFileDialog myDialog = new OpenFileDialog();

            myDialog.Filter = "Image Files(*.png;*.BMP;*.JPG;*.GIF)|*png;*.BMP;*.JPG;*.GIF" +
              "|All files (*.*)|*.*";

            myDialog.CheckFileExists = true;
            myDialog.Multiselect = true;

            //DesignerHead.Visibility = Visibility.Visible;

            if (myDialog.ShowDialog() == true)
            {
                DateTime date1 = DateTime.Now;
                //MessageBox.Show(myDialog.FileNames.First());
                BitmapImage Bimage = new BitmapImage(new Uri(myDialog.FileNames.First(), UriKind.Absolute));
                string FileName = myDialog.SafeFileName;
                string Files = myDialog.FileNames.First().Replace(FileName, "");
                string[] sFileNames = Directory.GetFiles(Files);
                foreach (string File in sFileNames)
                { 
                    LVData lvdata = new LVData();
                    lvdata.Pic = File;
                    ListPicture.Add(lvdata);
                }
                DesignerHead.Source = Bimage;
                //LVPicture.ItemsSource = ListPicture;

                DateTime date2 = DateTime.Now;

                DateTime date3 = DateTime.Now;

            }
        }

        //设置属性
        private void SetCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("设置属性");
        }

        //左移图片
        private void LeftCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("左移图片");
        }

        //右移图片
        private void RightCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            MessageBox.Show("右移图片");
        }

        private void clickdouble(object sender, MouseButtonEventArgs e)
        {
            this.WindowState = System.Windows.WindowState.Maximized;
        }


        bool bMove = false;


        private void MainPanel_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            //bMove = true;
        }

        private void MainPanel_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
           // bMove = false;
        }

        private void MainPanel_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (bMove)
            {
               // this.DragMove();
            }
        }



    }
}

 

<Window x:Class="Picture.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local ="clr-namespace:Picture"
        Title="MainWindow" Height="500" Width="600" WindowStyle="None" AllowsTransparency="True"
        MouseWheel="MasterImage_MouseWheel"
        MouseLeftButtonDown="DragWindow" BorderBrush="#FF9E2020" MouseDoubleClick="clickdouble" MinWidth="600" MinHeight="500">
    <Window.Background>
        <ImageBrush ImageSource="/Picture;component/Images/backimage.png" Stretch="None" TileMode="FlipXY" Viewport="0,0,23.9970001156186,20.9973751011662" ViewportUnits="Absolute" />
    </Window.Background>
    <Window.CommandBindings>
        <CommandBinding Command="{x:Static local:MyCommand.ThemeCommand}" Executed="ThemeCommand_Executed"></CommandBinding>
        <CommandBinding Command="Open" Executed="OpenFile"></CommandBinding>
        <CommandBinding Command="Close" Executed="CloseApp"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.SmallCommand}" Executed="SmallCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.NormalCommand}" Executed="NormalCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.BigCommand}" Executed="BigCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.CloseCommand}" Executed="CloseCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.ClockwiseCommand}" Executed="ClockwiseCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.AntiClockwiseCommand}" Executed="AntiClockwiseCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.LeftAndRightCommand}" Executed="LeftAndRightCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.AboveAndBelowCommand}" Executed="AboveAndBelowCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.AmplificationCommand}" Executed="AmplificationCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.NarrowCommand}" Executed="NarrowCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.BeforeCommand}" Executed="BeforeCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.AfterCommand}" Executed="AfterCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.SlideCommand}" Executed="SlideCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.OpenFileCommand}" Executed="OpenFileCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.SetCommand}" Executed="SetCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.LeftCommand}" Executed="LeftCommand_Executed"></CommandBinding>
        <CommandBinding Command="{x:Static local:MyCommand.RightCommand}" Executed="RightCommand_Executed"></CommandBinding>
    </Window.CommandBindings>
    <Window.Resources>
        <Storyboard x:Key="LoadHeadStoryboard">
             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"   Duration="00:00:02" Storyboard.TargetName="DesignerHead" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
                <SplineDoubleKeyFrame   Value="1"/>
                <SplineDoubleKeyFrame    Value="-1"/>
             </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
            <Setter Property="Foreground" Value="White"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Grid>
                            <Rectangle x:Name="Rectangle"
                                               Stroke="#FFFFFFFF"
                                               StrokeMiterLimit="1.000000"
                                               StrokeThickness="0.500000"
                                               RadiusX="10"
                                               RadiusY="10"
                                               Fill="#FF777777">
                            </Rectangle>
                            <ContentPresenter x:Name="ContentPresenter"
                                                           SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                                           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                           VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                                           RecognizesAccessKey="True"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="Fill" TargetName="Rectangle">
                                    <Setter.Value>
                                        <SolidColorBrush Color="White"></SolidColorBrush>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Foreground" Value="Black"></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <Window.Triggers>
        <EventTrigger RoutedEvent="MouseDown">
            <BeginStoryboard Storyboard="{StaticResource LoadHeadStoryboard}"/>
        </EventTrigger>
    </Window.Triggers>

    <!-- 窗体中的内容 -->
    <Grid x:Name="MainPanel" PreviewMouseLeftButtonUp="MainPanel_PreviewMouseLeftButtonUp" PreviewMouseMove="MainPanel_PreviewMouseMove"  PreviewMouseLeftButtonDown="MainPanel_PreviewMouseLeftButtonDown" >
        <Grid.Resources>
            <TransformGroup x:Key="ImageTransformResource">
                <ScaleTransform />
                <TranslateTransform />
            </TransformGroup>
        </Grid.Resources>

        <Rectangle x:Name="MasterImage"
                   MouseLeftButtonDown="MasterImage_MouseLeftButtonDown"
                   MouseLeftButtonUp="MasterImage_MouseLeftButtonUp"
                   MouseMove="MasterImage_MouseMove"
                   MouseWheel="MasterImage_MouseWheel">
            <Rectangle.Fill>
                <VisualBrush Transform="{StaticResource ImageTransformResource}" Stretch="Uniform">
                    <VisualBrush.Visual>
                        <Image Name="DesignerHead"  HorizontalAlignment="Left" Margin="16,16,0,0" Stretch="Fill" VerticalAlignment="Top" Source="/Picture;component/Images/Lighthouse.jpg" />
                    </VisualBrush.Visual>
                </VisualBrush>
            </Rectangle.Fill>
        </Rectangle>
        
        <ListView Name="LVPicture" Width="400" Height="100" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="96,0,82,70">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"></StackPanel>
                </ItemsPanelTemplate>                
            </ItemsControl.ItemsPanel>
            
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Image Width="30" Height="30" Source="{Binding Pic}"></Image>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListView>
        <!--<Image RenderTransformOrigin="0.4,0.5" HorizontalAlignment="Center" x:Name="DesignerHead" Stretch="Fill" VerticalAlignment="Center" Source="/Picture;component/Images/Desert%20-%20副本%20-%20副本%20%289%29%20-%20副本.jpg" Width="284" Margin="0" Height="351">
            <Image.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleX="1" ScaleY="1"  />
                </TransformGroup>
            </Image.RenderTransform>
        </Image>-->
        <!-- 窗体的边框,底色设置,
               注意将CornerRadius与左上角“X”叉形按钮的设置保持一致或约大于叉形按钮的RadiusX/Y设置 -->
        <!--<Border CornerRadius="0,0,0,0" Background="Transparent" BorderBrush="Aqua" BorderThickness="1">
            <Frame Name="frame1" Background="Transparent" BorderBrush="Red" BorderThickness="5" />
        </Border>-->
        <Frame Name="frame1"></Frame>
        <!--左上角的“X”叉形按钮-->
        <!--<Button Name="Button1" 
                Command="Close"
                     Style="{StaticResource ButtonStyle}"
                     Width="15"
                     Height="15"
                     Content="X"
                     HorizontalAlignment="Right"
                     VerticalAlignment="Top"
                     Margin="0,25,27,0"></Button>-->
        <!--<Path Name="PathName" Stroke="DarkGray" StrokeThickness="1" SnapsToDevicePixels="True" Data="M20,0 L140,0 A20,20,0,0,1,160,20 L160,60 A20,20,0,0,1,140,80 L70,80 L70,130 L40,80 L20,80 A20,20,0,0,1,0,60 L0,20 A20,20,0,0,1,20,0 z" Margin="144,43,194,135">
            <Path.Fill>
                <LinearGradientBrush StartPoint="0.2,0" EndPoint="0.8,1">
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Color="White" Offset="0"></GradientStop>
                        <GradientStop Color="White" Offset="0.45"></GradientStop>
                        <GradientStop Color="LightBlue" Offset="0.9"></GradientStop>
                        <GradientStop Color="Gray" Offset="1"></GradientStop>
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Path.Fill>
            <Path.RenderTransform>
                <ScaleTransform ScaleX="1.3" ScaleY="1.3"></ScaleTransform>
            </Path.RenderTransform>
        </Path>

        <StackPanel Name="SPanel" Margin="154,46,161,95">
            <Button HorizontalAlignment="Right" Click="cmdClose_Click" Margin="0,5,10,0" >
                x
            </Button><TextBlock TextWrapping="Wrap"  FontSize="15" HorizontalAlignment="Center">Open File</TextBlock>
        </StackPanel>
        <Button Command="Open" Content="{Binding RelativeSource={RelativeSource Self},Path=Command.Text}" Height="23" HorizontalAlignment="Left" Margin="207,218,0,0" Name="button2" VerticalAlignment="Top" Width="75" />-->


        <!--<Button Content="上一页" Height="23" HorizontalAlignment="Left" Margin="26,275,0,0" Name="button3" VerticalAlignment="Top" Width="75" Command="{x:Static local:MyCommand.UpCommand}" />
        <Button Content="下一页" Height="23" HorizontalAlignment="Left" Margin="117,275,0,0" Name="button4" VerticalAlignment="Top" Width="75" Click="button4_Click" />
        <Button Content="左右翻转" Height="23" HorizontalAlignment="Left" Margin="214,275,0,0" Name="button5" VerticalAlignment="Top" Width="75" Click="button5_Click" />
        <Button Content="上下翻转" Height="23" HorizontalAlignment="Left" Margin="309,275,0,0" Name="button6" VerticalAlignment="Top" Width="75" Click="button6_Click" />-->
        <!--<Rectangle x:Name="MasterImage"
                   MouseLeftButtonDown="MasterImage_MouseLeftButtonDown"
                   MouseLeftButtonUp="MasterImage_MouseLeftButtonUp"
                   MouseMove="MasterImage_MouseMove"
                   MouseWheel="MasterImage_MouseWheel" Width="30" Height="30">
            <Rectangle.Fill>
                <VisualBrush Transform="{StaticResource ImageTransformResource}" Stretch="Uniform">
                    <VisualBrush.Visual>
                        <Image Height="1" Name="DesignerHead"  HorizontalAlignment="Left" Margin="16,16,0,0" Stretch="Fill" VerticalAlignment="Top" Width="1" Source="/Picture;component/Images/Lighthouse.jpg" />
                    </VisualBrush.Visual>
                </VisualBrush>
            </Rectangle.Fill>
        </Rectangle>-->
    </Grid>
</Window>

 

posted on 2012-12-19 23:24  紫雨心  阅读(203)  评论(0)    收藏  举报

导航