From 4adf06e546f77eeba227474e633dcc0105f802f9 Mon Sep 17 00:00:00 2001
From: chr <chrry550@163.com>
Date: 星期六, 24 二月 2024 10:50:58 +0800
Subject: [PATCH] 完善Zindex层级显示

---
 Style/ListViewStyle.xaml           |    6 
 Controls/InnerWindow.xaml.cs       |   15 
 Models/Step.cs                     |    3 
 UI/StepSetting.xaml                |   11 
 UI/Test/SequnceList.xaml           |    2 
 WPFProject.sln                     |   56 +--
 UI/Test/FunctionSetting.xaml       |    3 
 Models/Sequence.cs                 |    3 
 WPFProject.csproj                  |  573 +++++++++++++++++++++----------------------
 UI/WorkControl.xaml.cs             |   18 
 UI/WorkControl.xaml                |    2 
 Models/NotifyBase.cs               |   31 ++
 Controls/InnerWindow.xaml          |    3 
 Utils/CanvasHelper.cs              |   15 
 ViewModels/ProgramListViewModel.cs |    3 
 Models/Program.cs                  |    3 
 16 files changed, 392 insertions(+), 355 deletions(-)

diff --git a/Controls/InnerWindow.xaml b/Controls/InnerWindow.xaml
index e9f17ca..8ca1095 100644
--- a/Controls/InnerWindow.xaml
+++ b/Controls/InnerWindow.xaml
@@ -9,7 +9,8 @@
              HorizontalContentAlignment="Stretch"
              SizeChanged="UserControl_SizeChanged"
              MouseLeftButtonDown="Grid_MouseLeftButtonDown"
-             Background="#FFF" >
+             Background="#FFF"
+             Focusable="True">
     <UserControl.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
diff --git a/Controls/InnerWindow.xaml.cs b/Controls/InnerWindow.xaml.cs
index bdd3b49..6de3db6 100644
--- a/Controls/InnerWindow.xaml.cs
+++ b/Controls/InnerWindow.xaml.cs
@@ -1,5 +1,4 @@
-锘縰sing CommonModel;
-using System;
+锘縰sing System;
 using System.ComponentModel;
 using System.Runtime.CompilerServices;
 using System.Windows;
@@ -43,6 +42,9 @@
 
         public int Zindex
         {
+            get {
+                return Canvas.GetZIndex(this);
+            }
             set
             {
                 Canvas.SetZIndex(this, value);
@@ -245,8 +247,13 @@
 
         private void Grid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
         {
-
-        }
+            this.Focus();
+        }
+
+        private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+        {
+
+        }
     }
 
     public class InnerWindowProp : NotifyBase
diff --git a/Models/NotifyBase.cs b/Models/NotifyBase.cs
new file mode 100644
index 0000000..ee510a3
--- /dev/null
+++ b/Models/NotifyBase.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace WPFProject.Models
+{
+    public class NotifyBase : INotifyPropertyChanged
+    {
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        protected virtual void RaisePropertyChanged(string name)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+        }
+
+        protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+        {
+            old = @new;
+            if (propertyName != null)
+            {
+                RaisePropertyChanged(propertyName);
+            }
+        }
+    }
+
+}
diff --git a/Models/Program.cs b/Models/Program.cs
index 8bea229..e73900f 100644
--- a/Models/Program.cs
+++ b/Models/Program.cs
@@ -1,5 +1,4 @@
-锘縰sing CommonModel;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
diff --git a/Models/Sequence.cs b/Models/Sequence.cs
index 8eee811..5a3b265 100644
--- a/Models/Sequence.cs
+++ b/Models/Sequence.cs
@@ -1,5 +1,4 @@
-锘縰sing CommonModel;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
diff --git a/Models/Step.cs b/Models/Step.cs
index 496a91e..2c2a346 100644
--- a/Models/Step.cs
+++ b/Models/Step.cs
@@ -1,5 +1,4 @@
-锘縰sing CommonModel;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
diff --git a/Style/ListViewStyle.xaml b/Style/ListViewStyle.xaml
index 053a088..923a9df 100644
--- a/Style/ListViewStyle.xaml
+++ b/Style/ListViewStyle.xaml
@@ -29,22 +29,22 @@
                             <Setter Property="Background" TargetName="Bd" Value="Orange"/>
                             <Setter Property="BorderBrush" TargetName="Bd" Value="#e17933"/>
                         </MultiTrigger>
-                        <MultiTrigger>
+                        <!--<MultiTrigger>
                             <MultiTrigger.Conditions>
                                 <Condition Property="Selector.IsSelectionActive" Value="False"/>
                                 <Condition Property="IsSelected" Value="True"/>
                             </MultiTrigger.Conditions>
                             <Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.SelectedInactive.Background}"/>
                             <Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.SelectedInactive.Border}"/>
-                        </MultiTrigger>
+                        </MultiTrigger>-->
                         <MultiTrigger>
                             <MultiTrigger.Conditions>
-                                <Condition Property="Selector.IsSelectionActive" Value="True"/>
                                 <Condition Property="IsSelected" Value="True"/>
                             </MultiTrigger.Conditions>
                             <Setter Property="Background" TargetName="Bd" Value="#e17933"/>
                             <Setter Property="BorderBrush" TargetName="Bd" Value="#e17933"/>
                         </MultiTrigger>
+
                         <Trigger Property="IsEnabled" Value="False">
                             <Setter Property="TextElement.Foreground" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                         </Trigger>
diff --git a/UI/StepSetting.xaml b/UI/StepSetting.xaml
index 5632b03..8e4d2a9 100644
--- a/UI/StepSetting.xaml
+++ b/UI/StepSetting.xaml
@@ -4,6 +4,7 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:WPFProject.UI"
+             xmlns:hc="https://handyorg.github.io/handycontrol"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
@@ -17,14 +18,16 @@
             <Style TargetType="Label"></Style>
             <Style TargetType="ListView"></Style>
 
-            <Style x:Key="tab" TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
-                <Setter Property="Foreground" Value="Red"/>
-            </Style>
+            <Color x:Key="DarkPrimaryColor">#e17933</Color>
+            <Color x:Key="PrimaryColor">#e17933</Color>
+            <Color x:Key="PrimaryTextColor">#e17933</Color>
+            <Color x:Key="SecondaryTitleColor">#e17933</Color>
+            <Color x:Key="BorderColor">#e17933</Color>
         </ResourceDictionary>
     </UserControl.Resources>
     
     <Grid>
-        <TabControl ItemContainerStyle="{StaticResource tab}" TabStripPlacement="Left">
+        <TabControl TabStripPlacement="Left">
             <TabItem Header="鍑芥暟鍒楄〃">
             </TabItem>
             <TabItem Header="鍙橀噺鍒楄〃">
diff --git a/UI/Test/FunctionSetting.xaml b/UI/Test/FunctionSetting.xaml
index 1f79f5b..4b4334d 100644
--- a/UI/Test/FunctionSetting.xaml
+++ b/UI/Test/FunctionSetting.xaml
@@ -23,6 +23,9 @@
     <Grid>
         <TabControl>
             <TabItem Header="鍑芥暟鍒楄〃">
+                <TreeView>
+                    <TreeViewItem></TreeViewItem>
+                </TreeView>
             </TabItem>
             <TabItem Header="鍙橀噺鍒楄〃">
             </TabItem>
diff --git a/UI/Test/SequnceList.xaml b/UI/Test/SequnceList.xaml
index 71445c0..5631baf 100644
--- a/UI/Test/SequnceList.xaml
+++ b/UI/Test/SequnceList.xaml
@@ -20,6 +20,8 @@
 
             <Style TargetType="Label"></Style>
             <Style TargetType="ListView"></Style>
+            <Color x:Key="DarkPrimaryColor">#e17933</Color>
+            <Color x:Key="PrimaryColor">#e17933</Color>
 
         </ResourceDictionary>
     </UserControl.Resources>
diff --git a/UI/WorkControl.xaml b/UI/WorkControl.xaml
index 020caec..e549395 100644
--- a/UI/WorkControl.xaml
+++ b/UI/WorkControl.xaml
@@ -24,7 +24,7 @@
                 <!--<vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="335" Canvas.Top="121" utils:Resize.IsResizeable="True"></vt:ProgramList>
                 <vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="600" Canvas.Top="121" FocusableChanged="ProgramList_FocusableChanged"></vt:ProgramList>-->
 
-                <local:BottomBar x:Name="BottomBar" Canvas.Bottom="0" Panel.ZIndex="99"/>
+                <local:BottomBar x:Name="BottomBar" Canvas.Bottom="0" Panel.ZIndex="9999999"/>
             </Canvas>
         </ScrollViewer>
 
diff --git a/UI/WorkControl.xaml.cs b/UI/WorkControl.xaml.cs
index c759d76..0e58efc 100644
--- a/UI/WorkControl.xaml.cs
+++ b/UI/WorkControl.xaml.cs
@@ -21,11 +21,6 @@
             Loaded += UserControl_Loaded;
         }
 
-        private void ProgramList_FocusableChanged(object sender, DependencyPropertyChangedEventArgs e)
-        {
-
-        }
-
         private List<CanvasPosition> InitGridSize()
         {
             List<CanvasPosition> result = new List<CanvasPosition>();
@@ -120,14 +115,22 @@
 
         }
 
+        public int CanvasChildrenCount { get; private set; } = 0;
         private void HandleInnerWindow(InnerWindow inner)
         {
             inner.MinEvent += InnerWindowMin;
             inner.MaxEvent += InnerWindowMax;
             inner.ZIndexEvent += Inner_ZIndexEvent;
+            inner.GotFocus += Inner_GotFocus;
             inner.AttachToCanvas(WorkArea);
-        }
-
+            inner.Zindex = CanvasChildrenCount++;
+        }
+
+        private void Inner_GotFocus(object sender, RoutedEventArgs e)
+        {
+            CanvasHelper.SetTopZIndex(sender as InnerWindow, WorkArea, typeof(InnerWindow));
+        }
+
         private void Inner_ZIndexEvent(object sender, EventArgs e)
         {
             CanvasHelper.SetTopZIndex(sender as InnerWindow, WorkArea, typeof(InnerWindow));
@@ -173,6 +176,7 @@
         {
             MinInnerWindow min = sender as MinInnerWindow;
             min.Inner.Visibility = Visibility.Visible;
+            CanvasHelper.SetTopZIndex(min.Inner, WorkArea, typeof(InnerWindow));
             BottomBar.RemoveMinWindow(min);
         }
 
diff --git a/Utils/CanvasHelper.cs b/Utils/CanvasHelper.cs
index 6950430..246f2a4 100644
--- a/Utils/CanvasHelper.cs
+++ b/Utils/CanvasHelper.cs
@@ -10,22 +10,23 @@
     {
         public static void SetTopZIndex(InnerWindow element, DependencyObject parent, Type targetClass)
         {
+            int max = 0;
+            int zindex = element.Zindex;
+
             for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
             {
                 InnerWindow child = VisualTreeHelper.GetChild(parent, i) as InnerWindow;
                 if (child != null && targetClass == child.GetType())
                 {
-                    if (element == child)
+                    if (element != child && child.Zindex >= zindex)
                     {
-                        child.Zindex = 1;
+                        child.Zindex = child.Zindex-1;
                     }
-                    else
-                    {
-                        child.Zindex = 0;
-                    }
+                   
                 }
-
+                max++;
             }
+            element.Zindex = max;
         }
     }
 }
diff --git a/ViewModels/ProgramListViewModel.cs b/ViewModels/ProgramListViewModel.cs
index 68c2294..efbb5b3 100644
--- a/ViewModels/ProgramListViewModel.cs
+++ b/ViewModels/ProgramListViewModel.cs
@@ -1,5 +1,4 @@
-锘縰sing CommonModel;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
diff --git a/WPFProject.csproj b/WPFProject.csproj
index d3dc788..e22f115 100644
--- a/WPFProject.csproj
+++ b/WPFProject.csproj
@@ -1,290 +1,285 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{D47D2314-5DD5-4899-ADF9-15ED057289D3}</ProjectGuid>
-    <OutputType>WinExe</OutputType>
-    <RootNamespace>WPFProject</RootNamespace>
-    <AssemblyName>WPFProject</AssemblyName>
-    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <WarningLevel>4</WarningLevel>
-    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
-    <Deterministic>true</Deterministic>
-    <LangVersion>latest</LangVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="AIStudio.Wpf.Controls, Version=1.2.2.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>packages\AIStudio.Wpf.Controls.1.2.2\lib\net461\AIStudio.Wpf.Controls.dll</HintPath>
-    </Reference>
-    <Reference Include="HandyControl, Version=3.4.0.0, Culture=neutral, PublicKeyToken=45be8712787a1e5b, processorArchitecture=MSIL">
-      <HintPath>packages\HandyControl.3.4.0\lib\net472\HandyControl.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\Microsoft.Xaml.Behaviors.Wpf.1.1.39\lib\net45\Microsoft.Xaml.Behaviors.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="PresentationFramework.Aero" />
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.Composition" />
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
-      <Private>True</Private>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Web" />
-    <Reference Include="System.Web.Extensions" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Xaml">
-      <RequiredTargetFramework>4.0</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="UIAutomationProvider" />
-    <Reference Include="WindowsBase" />
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-    <Reference Include="WindowsFormsIntegration" />
-    <Reference Include="WPF.MDI, Version=1.1.4.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>packages\WPF.MDI.1.1.4\lib\net40-client\WPF.MDI.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <ApplicationDefinition Include="App.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </ApplicationDefinition>
-    <Compile Include="Controls\DpPlugin.cs" />
-    <Compile Include="Controls\InnerWindow.xaml.cs">
-      <DependentUpon>InnerWindow.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\MinInnerWindow.xaml.cs">
-      <DependentUpon>MinInnerWindow.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Events\TabChange.cs" />
-    <Compile Include="Forms\Form1.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Forms\Form1.Designer.cs">
-      <DependentUpon>Form1.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Models\CanvasPosition.cs" />
-    <Compile Include="Models\Program.cs" />
-    <Compile Include="Models\Sequence.cs" />
-    <Compile Include="Models\Step.cs" />
-    <Compile Include="UI\BottomBar.xaml.cs">
-      <DependentUpon>BottomBar.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\StepSetting.xaml.cs">
-      <DependentUpon>StepSetting.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\TestWindow.xaml.cs">
-      <DependentUpon>TestWindow.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\Test\FunctionSetting.xaml.cs">
-      <DependentUpon>FunctionSetting.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\Test\ProgramList.xaml.cs">
-      <DependentUpon>ProgramList.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\Test\SequnceList.xaml.cs">
-      <DependentUpon>SequnceList.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\WorkControl.xaml.cs">
-      <DependentUpon>WorkControl.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="UI\WorkWindow.xaml.cs">
-      <DependentUpon>WorkWindow.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Utils\CanvasHelper.cs" />
-    <Compile Include="Utils\IPlugin.cs" />
-    <Compile Include="Utils\Resize.cs" />
-    <Compile Include="Utils\Win32Helper.cs" />
-    <Compile Include="ViewModels\ProgramListViewModel.cs" />
-    <Page Include="Controls\InnerWindow.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Controls\MenuTabControl.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Controls\MinInnerWindow.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="MainWindow.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Compile Include="App.xaml.cs">
-      <DependentUpon>App.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Controls\IconTabItem.cs" />
-    <Compile Include="Controls\MenuTabControl.xaml.cs">
-      <DependentUpon>MenuTabControl.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="MainWindow.xaml.cs">
-      <DependentUpon>MainWindow.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-    <Resource Include="Resources\Font\Font.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Resource>
-    <Page Include="Style\Colors.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Style\ListViewStyle.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Style\MainTab.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Style\WindowResources.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\BottomBar.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\StepSetting.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\TestWindow.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\Test\FunctionSetting.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\Test\ProgramList.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\Test\SequnceList.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\WorkControl.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="UI\WorkWindow.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
-    <Compile Include="Properties\Settings.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Settings.settings</DependentUpon>
-      <DesignTimeSharedInput>True</DesignTimeSharedInput>
-    </Compile>
-    <EmbeddedResource Include="Forms\Form1.resx">
-      <DependentUpon>Form1.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-    <None Include="packages.config" />
-    <None Include="Properties\Settings.settings">
-      <Generator>SettingsSingleFileGenerator</Generator>
-      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-    </None>
-    <Resource Include="Resources\Font\iconfont.ttf">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Resource>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <WCFMetadata Include="Connected Services\" />
-  </ItemGroup>
-  <ItemGroup />
-  <ItemGroup>
-    <ProjectReference Include="..\CommonModel\CommonModel.csproj">
-      <Project>{8af82d09-4932-4ddb-ad56-6bb9ffabb237}</Project>
-      <Name>CommonModel</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{D47D2314-5DD5-4899-ADF9-15ED057289D3}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>WPFProject</RootNamespace>
+    <AssemblyName>WPFProject</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+    <LangVersion>latest</LangVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="AIStudio.Wpf.Controls, Version=1.2.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>packages\AIStudio.Wpf.Controls.1.2.2\lib\net461\AIStudio.Wpf.Controls.dll</HintPath>
+    </Reference>
+    <Reference Include="HandyControl, Version=3.4.0.0, Culture=neutral, PublicKeyToken=45be8712787a1e5b, processorArchitecture=MSIL">
+      <HintPath>packages\HandyControl.3.4.0\lib\net472\HandyControl.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\Microsoft.Xaml.Behaviors.Wpf.1.1.39\lib\net45\Microsoft.Xaml.Behaviors.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="PresentationFramework.Aero" />
+    <Reference Include="System" />
+    <Reference Include="System.ComponentModel.Composition" />
+    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="UIAutomationProvider" />
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+    <Reference Include="WindowsFormsIntegration" />
+    <Reference Include="WPF.MDI, Version=1.1.4.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>packages\WPF.MDI.1.1.4\lib\net40-client\WPF.MDI.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Compile Include="Controls\DpPlugin.cs" />
+    <Compile Include="Controls\InnerWindow.xaml.cs">
+      <DependentUpon>InnerWindow.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Controls\MinInnerWindow.xaml.cs">
+      <DependentUpon>MinInnerWindow.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Events\TabChange.cs" />
+    <Compile Include="Forms\Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Forms\Form1.Designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Models\CanvasPosition.cs" />
+    <Compile Include="Models\NotifyBase.cs" />
+    <Compile Include="Models\Program.cs" />
+    <Compile Include="Models\Sequence.cs" />
+    <Compile Include="Models\Step.cs" />
+    <Compile Include="UI\BottomBar.xaml.cs">
+      <DependentUpon>BottomBar.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\StepSetting.xaml.cs">
+      <DependentUpon>StepSetting.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\TestWindow.xaml.cs">
+      <DependentUpon>TestWindow.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\Test\FunctionSetting.xaml.cs">
+      <DependentUpon>FunctionSetting.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\Test\ProgramList.xaml.cs">
+      <DependentUpon>ProgramList.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\Test\SequnceList.xaml.cs">
+      <DependentUpon>SequnceList.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\WorkControl.xaml.cs">
+      <DependentUpon>WorkControl.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="UI\WorkWindow.xaml.cs">
+      <DependentUpon>WorkWindow.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Utils\CanvasHelper.cs" />
+    <Compile Include="Utils\IPlugin.cs" />
+    <Compile Include="Utils\Resize.cs" />
+    <Compile Include="Utils\Win32Helper.cs" />
+    <Compile Include="ViewModels\ProgramListViewModel.cs" />
+    <Page Include="Controls\InnerWindow.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Controls\MenuTabControl.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Controls\MinInnerWindow.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Controls\IconTabItem.cs" />
+    <Compile Include="Controls\MenuTabControl.xaml.cs">
+      <DependentUpon>MenuTabControl.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Resource Include="Resources\Font\Font.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Resource>
+    <Page Include="Style\Colors.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Style\ListViewStyle.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Style\MainTab.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Style\WindowResources.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\BottomBar.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\StepSetting.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\TestWindow.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\Test\FunctionSetting.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\Test\ProgramList.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\Test\SequnceList.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\WorkControl.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="UI\WorkWindow.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Forms\Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="packages.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Resource Include="Resources\Font\iconfont.ttf">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Resource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Connected Services\" />
+  </ItemGroup>
+  <ItemGroup />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/WPFProject.sln b/WPFProject.sln
index 6a2788f..af850c1 100644
--- a/WPFProject.sln
+++ b/WPFProject.sln
@@ -1,31 +1,25 @@
-锘�
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.33328.57
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFProject", "WPFProject.csproj", "{D47D2314-5DD5-4899-ADF9-15ED057289D3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonModel", "..\CommonModel\CommonModel.csproj", "{8AF82D09-4932-4DDB-AD56-6BB9FFABB237}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8AF82D09-4932-4DDB-AD56-6BB9FFABB237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8AF82D09-4932-4DDB-AD56-6BB9FFABB237}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8AF82D09-4932-4DDB-AD56-6BB9FFABB237}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8AF82D09-4932-4DDB-AD56-6BB9FFABB237}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {784CEA1D-A890-4625-B0C1-72294A6B4803}
-	EndGlobalSection
-EndGlobal
+锘�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34408.163
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFProject", "WPFProject.csproj", "{D47D2314-5DD5-4899-ADF9-15ED057289D3}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {784CEA1D-A890-4625-B0C1-72294A6B4803}
+	EndGlobalSection
+EndGlobal

--
Gitblit v1.9.1