Commit 978118c3 by wangonghui
parents 4dc4aa9d 1e46c374
......@@ -13,6 +13,11 @@ namespace VIZ.Package.Domain
public static class ApplicationConstants
{
/// <summary>
/// 系统分组
/// </summary>
public const string APPLICATION_GROUP_NAME = "APPLICATION_GROUP";
/// <summary>
/// Viz 层集合
/// </summary>
public readonly static List<VizLayer> VIZ_LAYERS = new List<VizLayer> { VizLayer.FRONT_LAYER, VizLayer.MAIN_LAYER, VizLayer.BACK_LAYER };
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VIZ.Package.Domain
{
/// <summary>
/// 系统关闭消息
/// </summary>
public class ApplicationCloseMessage
{
}
}
......@@ -68,5 +68,19 @@ namespace VIZ.Package.Domain
}
#endregion
#region PluginName -- 插件名称
private string pluginName;
/// <summary>
/// 插件名称
/// </summary>
public string PluginName
{
get { return pluginName; }
set { pluginName = value; this.RaisePropertyChanged(nameof(PluginName)); }
}
#endregion
}
}
......@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
using VIZ.Package.Storage;
namespace VIZ.Package.Domain
......@@ -10,46 +11,105 @@ namespace VIZ.Package.Domain
/// <summary>
/// 插件信息
/// </summary>
public class PluginInfo
public class PluginInfo : ModelBase
{
#region ID -- 插件ID
private string id;
/// <summary>
/// 插件ID
/// </summary>
public string ID { get; set; }
public string ID
{
get { return id; }
set { id = value; this.RaisePropertyChanged(nameof(ID)); }
}
#endregion
#region Group -- 分组
private string group;
/// <summary>
/// 分组
/// </summary>
public string Group { get; set; }
public string Group
{
get { return group; }
set { group = value; this.RaisePropertyChanged(nameof(Group)); }
}
#endregion
#region Name -- 名称
private string name;
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
public string Name
{
get { return name; }
set { name = value; this.RaisePropertyChanged(nameof(Name)); }
}
#endregion
#region Remark -- 备注
private string remark;
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
public string Remark
{
get { return remark; }
set { remark = value; this.RaisePropertyChanged(nameof(Remark)); }
}
#endregion
#region ViewType -- 视图类型
private Type viewType;
/// <summary>
/// 视图类型
/// </summary>
public Type ViewType { get; set; }
public Type ViewType
{
get { return viewType; }
set { viewType = value; this.RaisePropertyChanged(nameof(ViewType)); }
}
/// <summary>
/// 设置视图类型
/// </summary>
public Type SettingViewType { get; set; }
#endregion
#region PluginType -- 插件类型
private PluginType pluginType;
/// <summary>
/// 插件类型
/// </summary>
public PluginType PluginType { get; set; }
public PluginType PluginType
{
get { return pluginType; }
set { pluginType = value; this.RaisePropertyChanged(nameof(PluginType)); }
}
#endregion
#region IsClosed -- 是否关闭
private bool isClosed;
/// <summary>
/// 生命周期
/// 是否显示
/// </summary>
public IPluginLifeCycle LifeCycle { get; set; }
public bool IsClosed
{
get { return isClosed; }
set { isClosed = value; this.RaisePropertyChanged(nameof(IsClosed)); }
}
#endregion
}
}
......@@ -19,6 +19,11 @@ namespace VIZ.Package.Domain
/// <summary>
/// 页插件
/// </summary>
Page
Page,
/// <summary>
/// 设置插件
/// </summary>
Setting
}
}
......@@ -78,6 +78,7 @@
<Compile Include="Enum\ModulePluginIds.cs" />
<Compile Include="Enum\ViewServiceKeys.cs" />
<Compile Include="Info\VizTreeNodeInfo.cs" />
<Compile Include="Message\Application\ApplicationCloseMessage.cs" />
<Compile Include="Message\Conn\ConnChangedMessage.cs" />
<Compile Include="Message\ControlObject\ControlFieldChangedMessage.cs" />
<Compile Include="Message\Page\PageOpenMessage.cs" />
......
<dx:ThemedWindow x:Class="VIZ.Package.Module.AboutWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
Title="咪咕播控系统" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- 系统名称 -->
<TextBlock Text="系统名称:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="0" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="咪咕播控系统" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="0" Grid.Column="1"></TextBlock>
<!-- 系统版本 -->
<TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="V1.0.0.0" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="1" Grid.Column="1"></TextBlock>
</Grid>
</dx:ThemedWindow>
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class ControlPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(ControlView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class CommandPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(CommandView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class FieldEditPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(FieldEditView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class FieldTreePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(FieldTreeView);
......
<dx:ThemedWindow x:Class="VIZ.Package.Module.AboutWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
WindowStartupLocation="CenterScreen"
Title="咪咕播控系统" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- 系统名称 -->
<TextBlock Text="系统名称:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="0" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="咪咕播控系统" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="0" Grid.Column="1"></TextBlock>
<!-- 系统版本 -->
<TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="V1.0.0.0" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="1" Grid.Column="1"></TextBlock>
</Grid>
</dx:ThemedWindow>
using DevExpress.Xpf.Core;
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.Shapes;
using VIZ.Framework.Core;
namespace VIZ.Package.Module
{
/// <summary>
/// Interaction logic for AboutWindow.xaml
/// </summary>
public partial class AboutWindow : ThemedWindow
{
public AboutWindow()
{
InitializeComponent();
WPFHelper.BindingViewModel(this, new AboutWindowModel());
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
namespace VIZ.Package.Module
{
/// <summary>
/// 关于窗口模型
/// </summary>
public class AboutWindowModel : ViewModelBase
{
}
}
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class LogPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(LogView);
......
......@@ -262,7 +262,12 @@ namespace VIZ.Package.Module
{
WPFHelper.Invoke(() =>
{
this.PluginGroups = ApplicationDomainEx.PluginInfos.GroupBy(p => p.Group).Select(p => p.Key).ToList();
this.PluginGroups = ApplicationDomainEx.PluginInfos
.Where(p => !string.IsNullOrWhiteSpace(p.Group) &&
p.Group != ApplicationConstants.APPLICATION_GROUP_NAME)
.GroupBy(p => p.Group)
.Select(p => p.Key)
.ToList();
this.SelectedPluginGroup = this.PluginGroups.FirstOrDefault(p => p == vizConfig.PluginGroup);
});
}
......
......@@ -6,10 +6,27 @@
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:fcore="clr-namespace:VIZ.Framework.Core;assembly=VIZ.Framework.Core"
d:DataContext="{d:DesignInstance Type=local:MainTopViewModel}"
xmlns:local="clr-namespace:VIZ.Package.Module"
mc:Ignorable="d"
mc:Ignorable="d" x:Name="uc"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<fcore:Bool2BoolConverterSimple x:Key="Bool2BoolConverterSimple"></fcore:Bool2BoolConverterSimple>
<DataTemplate x:Key="ViewItemTemplate">
<ContentControl>
<dxb:BarCheckItem Content="{Binding Name}"
IsChecked="{Binding Path=IsClosed,Mode=TwoWay,Converter={StaticResource Bool2BoolConverterSimple}}"></dxb:BarCheckItem>
</ContentControl>
</DataTemplate>
</UserControl.Resources>
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="Loaded" Command="{Binding Path=LoadedCommand}"></dxmvvm:EventToCommand>
</dxmvvm:Interaction.Behaviors>
<StackPanel Orientation="Horizontal">
<dxb:MainMenuControl Caption="MainMenu" VerticalAlignment="Center">
<dxb:BarSubItem Content="项目" IsEnabled="{Binding Path=IsVizPreviewReady}">
......@@ -20,13 +37,14 @@
</dxb:BarSubItem>
<dxb:BarSubItem Content="设置" Command="{Binding Path=SettingCommand}">
</dxb:BarSubItem>
<dxb:BarSubItem Content="视图" ItemLinksSource="{Binding Path=ItemsSource}" ItemTemplate="{StaticResource ViewItemTemplate}">
</dxb:BarSubItem>
<dxb:BarSubItem Content="布局">
<dxb:BarButtonItem Content="重置布局" Command="{Binding Path=ResetLayoutCommand}" />
</dxb:BarSubItem>
<dxb:BarSubItem Content="帮助">
<dxb:BarButtonItem Content="关于" />
<dxb:BarButtonItem Content="关于" Command="{Binding Path=AboutCommand}"/>
</dxb:BarSubItem>
</dxb:MainMenuControl>
<Border Background="#44000000" VerticalAlignment="Center" Padding="10,3,10,3">
<TextBlock Foreground="White" Text="{Binding Path=ProjectName}" VerticalAlignment="Center"></TextBlock>
</Border>
</StackPanel>
</UserControl>
</UserControl>
\ No newline at end of file
......@@ -8,6 +8,7 @@
xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:fcore="clr-namespace:VIZ.Framework.Core;assembly=VIZ.Framework.Core"
xmlns:plugin="clr-namespace:VIZ.Package.Plugin;assembly=VIZ.Package.Plugin"
xmlns:domain="clr-namespace:VIZ.Package.Domain;assembly=VIZ.Package.Domain"
xmlns:local="clr-namespace:VIZ.Package.Module"
......@@ -15,18 +16,21 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<DataTemplate DataType="{x:Type domain:PluginInfo}">
<plugin:PluginLoader ViewType="{Binding ViewType,Mode=OneWay}"></plugin:PluginLoader>
</DataTemplate>
<Style TargetType="{x:Type dxdo:LayoutPanel}">
<Setter Property="BindableName" Value="{Binding ID}" />
<Setter Property="Caption" Value="{Binding Name}" />
<Setter Property="ShowCloseButton" Value="False"></Setter>
<Setter Property="ShowCloseButton" Value="True"></Setter>
<Setter Property="Closed" Value="{Binding Path=IsClosed,Mode=TwoWay}"></Setter>
</Style>
<Style TargetType="{x:Type dxdo:DocumentPanel}">
<Setter Property="BindableName" Value="{Binding ID}" />
<Setter Property="Caption" Value="{Binding Name}" />
<Setter Property="ShowCloseButton" Value="False"></Setter>
<Setter Property="ShowCloseButton" Value="True"></Setter>
<Setter Property="Closed" Value="{Binding Path=IsClosed,Mode=TwoWay}"></Setter>
</Style>
</UserControl.Resources>
......
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
......@@ -8,6 +10,7 @@ using System.Windows.Forms;
using VIZ.Framework.Core;
using VIZ.Package.Domain;
using VIZ.Package.Storage;
using static DevExpress.XtraPrinting.Native.ExportOptionsPropertiesNames;
namespace VIZ.Package.Module
{
......@@ -30,12 +33,16 @@ namespace VIZ.Package.Module
/// </summary>
private void InitCommand()
{
this.LoadedCommand = new VCommand(this.Loaded);
this.CreateProjectCommand = new VCommand(this.CreateProject);
this.OpenProjectCommand = new VCommand(this.OpenProject);
this.SaveProjectCommand = new VCommand(this.SaveProject, this.CanSaveProject);
this.CloseProjectCommand = new VCommand(this.CloseProject, this.CanCloseProject);
this.SettingCommand = new VCommand(this.Setting);
this.ResetLayoutCommand = new VCommand(this.ResetLayout);
this.AboutCommand = new VCommand(this.About);
}
/// <summary>
......@@ -78,10 +85,48 @@ namespace VIZ.Package.Module
#endregion
#region ItemsSource -- 视图项
private ObservableCollection<PluginInfo> itemsSource;
/// <summary>
/// 视图项
/// </summary>
public ObservableCollection<PluginInfo> ItemsSource
{
get { return itemsSource; }
set { itemsSource = value; this.RaisePropertyChanged(nameof(ItemsSource)); }
}
#endregion
// =====================================================================
// Command
// =====================================================================
#region LoadedCommand -- 加载命令
/// <summary>
/// 加载命令
/// </summary>
public VCommand LoadedCommand { get; set; }
/// <summary>
/// 加载
/// </summary>
private void Loaded()
{
if (this.IsAlreadyLoaded)
return;
this.IsAlreadyLoaded = true;
this.ItemsSource = ApplicationDomainEx.PluginInfos.Where(p => (p.Group == ApplicationConstants.APPLICATION_GROUP_NAME ||
p.Group == ApplicationDomainEx.VizConfig.PluginGroup) &&
p.PluginType == PluginType.Module).ToObservableCollection();
}
#endregion
#region CreateProjectCommand -- 创建项目命令
/// <summary>
......@@ -260,6 +305,46 @@ namespace VIZ.Package.Module
#endregion
#region ResetLayoutCommand -- 重置布局命令
/// <summary>
/// 重置布局命令
/// </summary>
public VCommand ResetLayoutCommand { get; set; }
/// <summary>
/// 重置布局
/// </summary>
private void ResetLayout()
{
IMainViewService service = ApplicationDomainEx.ServiceManager.GetService<IMainViewService>(ViewServiceKeys.MAIN_VIEW_SERVICE);
if (service == null)
return;
service.LoadLayout();
}
#endregion
#region AboutCommand -- 关于命令
/// <summary>
/// 关于命令
/// </summary>
public VCommand AboutCommand { get; set; }
/// <summary>
/// 关于
/// </summary>
private void About()
{
AboutWindow window = new AboutWindow();
window.Owner = ApplicationDomainEx.MainWindow;
window.ShowDialog();
}
#endregion
// =====================================================================
// Message
// =====================================================================
......
......@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using VIZ.Framework.Core;
using VIZ.Package.Domain;
using VIZ.Package.Plugin;
using VIZ.Package.Storage;
namespace VIZ.Package.Module
{
......@@ -17,10 +18,14 @@ namespace VIZ.Package.Module
{
public MainViewModel()
{
ApplicationDomainEx.ServiceManager.AddService(ViewServiceKeys.MAIN_VIEW_SERVICE, this);
// 初始化命令
this.InitCommand();
// 初始化消息
this.InitMessage();
// 注册服务
ApplicationDomainEx.ServiceManager.AddService(ViewServiceKeys.MAIN_VIEW_SERVICE, this);
}
/// <summary>
......@@ -31,6 +36,14 @@ namespace VIZ.Package.Module
this.LoadedCommand = new VCommand(this.Loaded);
}
/// <summary>
/// 初始化消息
/// </summary>
private void InitMessage()
{
ApplicationDomainEx.MessageManager.Register<ApplicationCloseMessage>(this, this.OnApplicationCloseMessage);
}
// ============================================================
// Service & Controller
// ============================================================
......@@ -41,7 +54,7 @@ namespace VIZ.Package.Module
#region ItemsSource -- 视图项
private ObservableCollection<PluginInfo> itemsSource = ApplicationDomainEx.PluginInfos.Where(p => p.PluginType == PluginType.Module).ToObservableCollection();
private ObservableCollection<PluginInfo> itemsSource;
/// <summary>
/// 视图项
/// </summary>
......@@ -74,12 +87,34 @@ namespace VIZ.Package.Module
this.IsAlreadyLoaded = true;
this.ItemsSource = ApplicationDomainEx.PluginInfos.Where(p => (p.Group == ApplicationConstants.APPLICATION_GROUP_NAME ||
p.Group == ApplicationDomainEx.VizConfig.PluginGroup) &&
p.PluginType == PluginType.Module).ToObservableCollection();
// 加载布局
this.LoadLayout();
//
}
#endregion
// ============================================================
// Message
// ============================================================
/// <summary>
/// 系统关闭消息
/// </summary>
/// <param name="msg">消息</param>
private void OnApplicationCloseMessage(ApplicationCloseMessage msg)
{
// 保存布局
this.SaveLayout();
}
// ============================================================
// Public Function
// ============================================================
......@@ -92,7 +127,15 @@ namespace VIZ.Package.Module
if (view == null)
return;
string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout.xml");
string path = this.GetLayoutPath();
// 创建布局文件文件夹
string dir = System.IO.Path.GetDirectoryName(path);
if (!System.IO.Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
}
view.dockLayoutManager.SaveLayoutToXml(path);
}
......@@ -105,8 +148,74 @@ namespace VIZ.Package.Module
if (view == null)
return;
string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout.xml");
// 获取当前布局文件路径
string path = this.GetLayoutPath();
// 如果没有布局文件,那么尝试使用默认布局文件
if (string.IsNullOrWhiteSpace(path) || !System.IO.File.Exists(path))
{
path = this.GetDefaultLayoutPath();
}
// 如果没有对应插件布局文件,那么尝试使用系统默认布局文件
if (string.IsNullOrWhiteSpace(path) || !System.IO.File.Exists(path))
{
path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout", "default_layout.xml");
}
// 如果布局文件不存在,那么不加载布局
if (!System.IO.File.Exists(path))
{
return;
}
view.dockLayoutManager.RestoreLayoutFromXml(path);
}
// ============================================================
// Private Function
// ============================================================
/// <summary>
/// 获取布局文件路径
/// </summary>
/// <returns>布局文件路径</returns>
private string GetLayoutPath()
{
string path;
if (string.IsNullOrWhiteSpace(ApplicationDomainEx.VizConfig.PluginGroup))
{
path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout", "layout.xml");
}
else
{
path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout", ApplicationDomainEx.VizConfig.PluginGroup, "layout.xml");
}
return path;
}
/// <summary>
/// 获取默认布局文件路径
/// </summary>
/// <returns>默认布局文件路径</returns>
private string GetDefaultLayoutPath()
{
string path;
if (string.IsNullOrWhiteSpace(ApplicationDomainEx.VizConfig.PluginGroup))
{
path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout", "default_layout.xml");
}
else
{
path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "layout", ApplicationDomainEx.VizConfig.PluginGroup, "default_layout.xml");
}
return path;
}
}
}
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class PageGroupPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(PageGroupView);
......
......@@ -8,7 +8,7 @@
xmlns:local="clr-namespace:VIZ.Package.Module"
d:DataContext="{d:DesignInstance Type=local:PageGroupRenameViewModel}"
mc:Ignorable="d" WindowStartupLocation="CenterScreen"
Title="节目单命名" Height="100" Width="400">
Title="节目单命名" Height="160" Width="400">
<dx:ThemedWindow.Resources>
<fcore:StringNotNull2BoolConverter x:Key="StringNotNull2BoolConverter"></fcore:StringNotNull2BoolConverter>
......
......@@ -122,7 +122,11 @@ namespace VIZ.Package.Module
/// </summary>
private void Loaded()
{
this.TemplatePlugins = ApplicationDomainEx.PluginInfos.Where(p => p.Group == ApplicationDomainEx.VizConfig.PluginGroup && p.PluginType == PluginType.Page).ToList();
this.TemplatePlugins = ApplicationDomainEx.PluginInfos.Where(
p => !string.IsNullOrWhiteSpace(p.Group) &&
p.Group != ApplicationConstants.APPLICATION_GROUP_NAME &&
p.Group == ApplicationDomainEx.VizConfig.PluginGroup &&
p.PluginType == PluginType.Page).ToList();
// TODO: 选择默认模板
}
......
......@@ -44,6 +44,7 @@ namespace VIZ.Package.Module
this.AddGroupCommand = new VCommand(this.AddGroup);
this.RenameGroupCommand = new VCommand(this.RenameGroup);
this.DeleteGroupCommand = new VCommand(this.DeleteGroup);
this.DeleteItemCommand = new VCommand(this.DeleteItem);
this.OpenPageCommand = new VCommand(this.OpenPage);
}
......@@ -211,10 +212,11 @@ namespace VIZ.Package.Module
private void RenameGroup()
{
PageGroupRenameWindow window = new PageGroupRenameWindow();
PageGroupRenameViewModel vm = window.DataContext as PageGroupRenameViewModel;
vm.PageGroupName = this.SelectedPageGroupModel.GroupName;
if (window.ShowDialog() != true)
return;
PageGroupRenameViewModel vm = window.DataContext as PageGroupRenameViewModel;
this.SelectedPageGroupModel.GroupName = vm.PageGroupName;
}
......@@ -243,6 +245,29 @@ namespace VIZ.Package.Module
#endregion
#region DeleteItemCommand -- 刪除項命令
/// <summary>
/// 删除项命令
/// </summary>
public VCommand DeleteItemCommand { get; set; }
/// <summary>
/// 删除项
/// </summary>
private void DeleteItem()
{
if (this.SelectedPageGroupModel == null || this.SelectedPageModel == null)
return;
if (DXMessageBox.Show($"是否删除项【{this.SelectedPageModel.Scene}】", "提示", MessageBoxButton.YesNo) != MessageBoxResult.Yes)
return;
this.SelectedPageGroupModel.Pages.Remove(this.SelectedPageModel);
}
#endregion
#region OpenPageCommand -- 打开页命令
/// <summary>
......@@ -374,6 +399,7 @@ namespace VIZ.Package.Module
page.TemplateID = template.TemplateID;
page.ThumbnailBitmap = template.ThumbnailBitmap;
page.PluginID = vm.SelectedTemplatePlugin?.ID;
page.PluginName = vm.SelectedTemplatePlugin?.Name;
this.SelectedPageGroupModel.Pages.Add(page);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class PageTemplatePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(PageTemplateView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class PluginPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(PluginView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class VizPreviewPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(VizPreviewView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class GHScenePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(GHSceneView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class MediaResourcePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,6 +38,7 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.ViewType = typeof(MediaResourceView);
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class ConnPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,9 +38,11 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.SettingViewType = typeof(ConnSettingView);
info.PluginType = PluginType.Setting;
info.ViewType = typeof(ConnSettingView);
return info;
}
......
......@@ -94,22 +94,14 @@ namespace VIZ.Package.Module
this.IsAlreadyLoaded = true;
var modules = ApplicationDomainEx.PluginInfos.Where(p => p.PluginType == PluginType.Module && p.SettingViewType != null);
var templates = ApplicationDomainEx.PluginInfos.Where(p => p.PluginType == PluginType.Page && p.SettingViewType != null);
var settings = ApplicationDomainEx.PluginInfos.Where(p => p.PluginType == PluginType.Setting &&
!string.IsNullOrWhiteSpace(p.Group));
foreach (var item in modules)
foreach (var item in settings)
{
SettingPageModel config = new SettingPageModel();
config.Name = item.Name;
config.ViewType = item.SettingViewType;
this.ItemsSource.Add(config);
}
foreach (var item in templates)
{
SettingPageModel config = new SettingPageModel();
config.Name = item.Name;
config.ViewType = item.SettingViewType;
config.ViewType = item.ViewType;
this.ItemsSource.Add(config);
}
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class MediaSettingPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,9 +38,11 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.SettingViewType = typeof(MediaSettingView);
info.PluginType = PluginType.Setting;
info.ViewType = typeof(MediaSettingView);
return info;
}
......
......@@ -14,6 +14,11 @@ namespace VIZ.Package.Module
public class VizConfigSettingPluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 插件分组
/// </summary>
public const string PLUGIN_GROUP = ApplicationConstants.APPLICATION_GROUP_NAME;
/// <summary>
/// 插件ID
/// </summary>
/// <remarks>
......@@ -33,9 +38,11 @@ namespace VIZ.Package.Module
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.Group = PLUGIN_GROUP;
info.ID = PLUGIN_ID;
info.Name = PLUGIN_NAME;
info.SettingViewType = typeof(VizConfigSettingView);
info.PluginType = PluginType.Setting;
info.ViewType = typeof(VizConfigSettingView);
return info;
}
......
......@@ -90,6 +90,10 @@
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<Compile Include="Help\About\View\AboutWindow.xaml.cs">
<DependentUpon>AboutWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Help\About\ViewModel\AboutWindowModel.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ResourceEdit\MHResourceEditPartModel.cs" />
<Compile Include="ControlObject\FieldEdit\Service\IFieldEditService.cs" />
<Compile Include="ControlObject\FieldEdit\ViewModel\FieldEditViewModelBase.cs" />
......@@ -330,6 +334,10 @@
<Folder Include="Main\Controller\" />
</ItemGroup>
<ItemGroup>
<Page Include="Help\About\View\AboutWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Main\View\MainConnView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
......
......@@ -119,6 +119,7 @@ namespace VIZ.Package.Service
model.TemplateID = entity.TemplateID;
model.PluginID = entity.PluginID;
model.Order = entity.Order;
model.PluginName = ApplicationDomainEx.PluginInfos.FirstOrDefault(p => p.ID == entity.PluginID)?.Name;
groupModel.Pages.Add(model);
}
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
using VIZ.Package.Plugin;
namespace VIZ.Package.TestPlugin
{
/// <summary>
/// 测试模块插件生命周期
/// </summary>
public class TestModulePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 注册
/// </summary>
/// <returns>插件信息</returns>
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.ID = "TestModulePlugin";
info.Name = "测试模块插件";
info.Group = "测试";
info.PluginType = PluginType.Module;
info.ViewType = typeof(TestModuleView);
return info;
}
/// <summary>
/// 销毁
/// </summary>
public void Dispose()
{
}
}
}
<UserControl x:Class="VIZ.Package.TestPlugin.TestModuleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VIZ.Package.TestPlugin"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<TextBlock Text="TestModulePlugin" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Red"
FontSize="36"></TextBlock>
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
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 VIZ.Framework.Core;
namespace VIZ.Package.TestPlugin
{
/// <summary>
/// TestModuleView.xaml 的交互逻辑
/// </summary>
public partial class TestModuleView : UserControl
{
public TestModuleView()
{
InitializeComponent();
WPFHelper.BindingViewModel(this, new TestModuleViewModel());
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
namespace VIZ.Package.TestPlugin
{
/// <summary>
/// 测试模块视图模型
/// </summary>
public class TestModuleViewModel : ViewModelBase
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
using VIZ.Package.Plugin;
namespace VIZ.Package.TestPlugin
{
/// <summary>
/// 测试页插件生命周期
/// </summary>
public class TestPagePluginLifeCycle : IPluginLifeCycle
{
/// <summary>
/// 注册
/// </summary>
/// <returns>插件信息</returns>
public PluginInfo Register()
{
PluginInfo info = new PluginInfo();
info.ID = "TestPagePlugin";
info.Name = "测试页插件";
info.Group = "测试";
info.PluginType = PluginType.Page;
info.ViewType = typeof(TestPageView);
return info;
}
/// <summary>
/// 销毁
/// </summary>
public void Dispose()
{
}
}
}
<UserControl x:Class="VIZ.Package.TestPlugin.TestPageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VIZ.Package.TestPlugin"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<TextBlock Text="TestPagePlugin" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Red"
FontSize="36"></TextBlock>
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
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 VIZ.Framework.Core;
namespace VIZ.Package.TestPlugin
{
/// <summary>
/// TestPageView.xaml 的交互逻辑
/// </summary>
public partial class TestPageView : UserControl
{
public TestPageView()
{
InitializeComponent();
WPFHelper.BindingViewModel(this, new TestPageViewModel());
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
namespace VIZ.Package.TestPlugin
{
public class TestPageViewModel : ViewModelBase
{
}
}
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("VIZ.Package.TestPlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("VIZ.Package.TestPlugin")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
//若要开始生成可本地化的应用程序,请设置
//.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture>
//例如,如果您在源文件中使用的是美国英语,
//使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消
//对以下 NeutralResourceLanguage 特性的注释。 更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly:ThemeInfo(
ResourceDictionaryLocation.None, //主题特定资源词典所处位置
//(未在页面中找到资源时使用,
//或应用程序资源字典中找到时使用)
ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
//(未在页面中找到资源时使用,
//、应用程序或任何主题专用资源字典中找到时使用)
)]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace VIZ.Package.TestPlugin.Properties {
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if ((resourceMan == null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VIZ.Package.TestPlugin.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace VIZ.Package.TestPlugin.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
\ No newline at end of file
<?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>{BCE18065-FAD5-43B8-BB15-A9927666757A}</ProjectGuid>
<OutputType>library</OutputType>
<RootNamespace>VIZ.Package.TestPlugin</RootNamespace>
<AssemblyName>VIZ.Package.TestPlugin</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<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.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="Module\TestModuleViewModel.cs" />
<Compile Include="Module\TestModulePluginLifeCycle.cs" />
<Compile Include="Page\TestPagePluginLifeCycle.cs" />
<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>
<Compile Include="Page\TestPageView.xaml.cs">
<DependentUpon>TestPageView.xaml</DependentUpon>
</Compile>
<Compile Include="Page\TestPageViewModel.cs" />
<Compile Include="Module\TestModuleView.xaml.cs">
<DependentUpon>TestModuleView.xaml</DependentUpon>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Page Include="Page\TestPageView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Module\TestModuleView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Common.Resource\VIZ.Framework.Common.Resource.csproj">
<Project>{76ef480a-e486-41b7-b7a5-2a849fc8d5bf}</Project>
<Name>VIZ.Framework.Common.Resource</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Common\VIZ.Framework.Common.csproj">
<Project>{92834c05-703e-4f05-9224-f36220939d8f}</Project>
<Name>VIZ.Framework.Common</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Connection\VIZ.Framework.Connection.csproj">
<Project>{e07528dd-9dee-47c2-b79d-235ecfa6b003}</Project>
<Name>VIZ.Framework.Connection</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Core\VIZ.Framework.Core.csproj">
<Project>{75b39591-4bc3-4b09-bd7d-ec9f67efa96e}</Project>
<Name>VIZ.Framework.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Domain\VIZ.Framework.Domain.csproj">
<Project>{28661e82-c86a-4611-a028-c34f6ac85c97}</Project>
<Name>VIZ.Framework.Domain</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Module\VIZ.Framework.Module.csproj">
<Project>{47cf6fb0-e37d-4ef1-afc7-03db2bca8892}</Project>
<Name>VIZ.Framework.Module</Name>
</ProjectReference>
<ProjectReference Include="..\..\VIZ.Framework\VIZ.Framework.Storage\VIZ.Framework.Storage.csproj">
<Project>{06b80c09-343d-4bb2-aeb1-61cfbfbf5cad}</Project>
<Name>VIZ.Framework.Storage</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Common\VIZ.Package.Common.csproj">
<Project>{e4912bce-bc90-4457-9ee3-06435496d979}</Project>
<Name>VIZ.Package.Common</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Connection\VIZ.Package.Connection.csproj">
<Project>{421527f6-37b8-4615-9317-ffd5e272181b}</Project>
<Name>VIZ.Package.Connection</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Domain\VIZ.Package.Domain.csproj">
<Project>{dbaeae47-1f2d-4b05-82c3-abf7cc33aa2d}</Project>
<Name>VIZ.Package.Domain</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Module.Resource\VIZ.Package.Module.Resource.csproj">
<Project>{327ea1f4-f23c-418a-a2ef-da4f1039b333}</Project>
<Name>VIZ.Package.Module.Resource</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Module\VIZ.Package.Module.csproj">
<Project>{6fd4c0f0-8a00-4db8-924b-a3cd9a45297f}</Project>
<Name>VIZ.Package.Module</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Plugin\VIZ.Package.Plugin.csproj">
<Project>{9c7d3994-340a-480f-8d06-92c562137810}</Project>
<Name>VIZ.Package.Plugin</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Service\VIZ.Package.Service.csproj">
<Project>{bf693c2d-3de8-463b-8394-a0667dca7b42}</Project>
<Name>VIZ.Package.Service</Name>
</ProjectReference>
<ProjectReference Include="..\VIZ.Package.Storage\VIZ.Package.Storage.csproj">
<Project>{5bf08a07-9405-4f5d-a7f7-9d9ee17d6dd0}</Project>
<Name>VIZ.Package.Storage</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
......@@ -63,6 +63,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VIZ.Package.Module.Resource
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VIZ.Package.WpfTest", "VIZ.Package.WpfTest\VIZ.Package.WpfTest.csproj", "{680C8D29-A993-492E-9E1A-DA80513ADBFE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VIZ.Package.TestPlugin", "VIZ.Package.TestPlugin\VIZ.Package.TestPlugin.csproj", "{BCE18065-FAD5-43B8-BB15-A9927666757A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -133,80 +135,88 @@ Global
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Debug|x64.Build.0 = Debug|x64
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|Any CPU.Build.0 = Release|Any CPU
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|x64.ActiveCfg = Release|Any CPU
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|x64.Build.0 = Release|Any CPU
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|x64.ActiveCfg = Release|x64
{5E259876-8FA4-4AD1-9D91-07A76ABC2A16}.Release|x64.Build.0 = Release|x64
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Debug|x64.ActiveCfg = Debug|x64
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Debug|x64.Build.0 = Debug|x64
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|Any CPU.Build.0 = Release|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|x64.ActiveCfg = Release|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|x64.Build.0 = Release|Any CPU
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|x64.ActiveCfg = Release|x64
{5BF08A07-9405-4F5D-A7F7-9D9EE17D6DD0}.Release|x64.Build.0 = Release|x64
{9C7D3994-340A-480F-8D06-92C562137810}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Debug|x64.ActiveCfg = Debug|x64
{9C7D3994-340A-480F-8D06-92C562137810}.Debug|x64.Build.0 = Debug|x64
{9C7D3994-340A-480F-8D06-92C562137810}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Release|Any CPU.Build.0 = Release|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Release|x64.ActiveCfg = Release|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Release|x64.Build.0 = Release|Any CPU
{9C7D3994-340A-480F-8D06-92C562137810}.Release|x64.ActiveCfg = Release|x64
{9C7D3994-340A-480F-8D06-92C562137810}.Release|x64.Build.0 = Release|x64
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Debug|x64.ActiveCfg = Debug|x64
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Debug|x64.Build.0 = Debug|x64
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|Any CPU.Build.0 = Release|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|x64.ActiveCfg = Release|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|x64.Build.0 = Release|Any CPU
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|x64.ActiveCfg = Release|x64
{DBAEAE47-1F2D-4B05-82C3-ABF7CC33AA2D}.Release|x64.Build.0 = Release|x64
{E4912BCE-BC90-4457-9EE3-06435496D979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Debug|x64.ActiveCfg = Debug|x64
{E4912BCE-BC90-4457-9EE3-06435496D979}.Debug|x64.Build.0 = Debug|x64
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|Any CPU.Build.0 = Release|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|x64.ActiveCfg = Release|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|x64.Build.0 = Release|Any CPU
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|x64.ActiveCfg = Release|x64
{E4912BCE-BC90-4457-9EE3-06435496D979}.Release|x64.Build.0 = Release|x64
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Debug|x64.ActiveCfg = Debug|x64
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Debug|x64.Build.0 = Debug|x64
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|Any CPU.Build.0 = Release|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|x64.ActiveCfg = Release|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|x64.Build.0 = Release|Any CPU
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|x64.ActiveCfg = Release|x64
{BF693C2D-3DE8-463B-8394-A0667DCA7B42}.Release|x64.Build.0 = Release|x64
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Debug|x64.ActiveCfg = Debug|x64
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Debug|x64.Build.0 = Debug|x64
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|Any CPU.Build.0 = Release|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|x64.ActiveCfg = Release|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|x64.Build.0 = Release|Any CPU
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|x64.ActiveCfg = Release|x64
{6FD4C0F0-8A00-4DB8-924B-A3CD9A45297F}.Release|x64.Build.0 = Release|x64
{421527F6-37B8-4615-9317-FFD5E272181B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Debug|x64.ActiveCfg = Debug|x64
{421527F6-37B8-4615-9317-FFD5E272181B}.Debug|x64.Build.0 = Debug|x64
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|Any CPU.Build.0 = Release|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|x64.ActiveCfg = Release|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|x64.Build.0 = Release|Any CPU
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|x64.ActiveCfg = Release|x64
{421527F6-37B8-4615-9317-FFD5E272181B}.Release|x64.Build.0 = Release|x64
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Debug|Any CPU.Build.0 = Debug|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Debug|x64.ActiveCfg = Debug|x64
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Debug|x64.Build.0 = Debug|x64
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|Any CPU.ActiveCfg = Release|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|Any CPU.Build.0 = Release|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|x64.ActiveCfg = Release|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|x64.Build.0 = Release|Any CPU
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|x64.ActiveCfg = Release|x64
{327EA1F4-F23C-418A-A2EF-DA4F1039B333}.Release|x64.Build.0 = Release|x64
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Debug|x64.ActiveCfg = Debug|x64
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Debug|x64.Build.0 = Debug|x64
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|Any CPU.Build.0 = Release|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|x64.ActiveCfg = Release|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|x64.Build.0 = Release|Any CPU
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|x64.ActiveCfg = Release|x64
{680C8D29-A993-492E-9E1A-DA80513ADBFE}.Release|x64.Build.0 = Release|x64
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Debug|x64.ActiveCfg = Debug|x64
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Debug|x64.Build.0 = Debug|x64
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Release|Any CPU.Build.0 = Release|Any CPU
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Release|x64.ActiveCfg = Release|Any CPU
{BCE18065-FAD5-43B8-BB15-A9927666757A}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -229,6 +239,7 @@ Global
{421527F6-37B8-4615-9317-FFD5E272181B} = {13578EF6-3708-4541-AD15-1432CCBB6A76}
{327EA1F4-F23C-418A-A2EF-DA4F1039B333} = {3EF92943-B3E1-4D8F-857E-B8C3B6999096}
{680C8D29-A993-492E-9E1A-DA80513ADBFE} = {0A0B7990-3978-4CCC-AB65-9E4F60EC5C4E}
{BCE18065-FAD5-43B8-BB15-A9927666757A} = {0A0B7990-3978-4CCC-AB65-9E4F60EC5C4E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {210415E4-5B35-429D-99F2-ACE39AB42FF3}
......
using DevExpress.Xpf.Core;
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -21,6 +22,11 @@ namespace VIZ.Package
/// </summary>
public partial class MainWindow : ThemedWindow
{
/// <summary>
/// 日志
/// </summary>
private readonly static ILog log = LogManager.GetLogger(typeof(MainWindow));
public MainWindow()
{
InitializeComponent();
......@@ -33,8 +39,21 @@ namespace VIZ.Package
/// </summary>
private void MainWindow_Closed(object sender, EventArgs e)
{
// 发送系统关闭消息
try
{
ApplicationCloseMessage msg = new ApplicationCloseMessage();
ApplicationDomainEx.MessageManager.Send(msg);
}
catch (Exception ex)
{
log.Error(ex);
}
// 启动结束流程
AppSetup.ShutDown();
// 结束进程
Environment.Exit(0);
}
}
......
......@@ -201,5 +201,26 @@
<Name>VIZ.Package.Storage</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="layout\default_layout.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>echo ==========================================================
echo #################### COPY LIB ####################
xcopy "$(SolutionDir)Lib" ".\" /S /Y /C /E /F
echo ----------------------------------------------------------
if "$(ConfigurationName)" == "Release" (
echo #################### RELEASE MODE ####################
echo #################### DELETE *.dll.config ####################
for %25%25i in (.\*.dll.config) do (echo %25%25i &amp;&amp; del %25%25i)
echo #################### DELETE *.pdb ####################
for %25%25i in (.\*.pdb) do ( echo %25%25i &amp;&amp; del %25%25i )
echo #################### DELETE *.xml ####################
for %25%25i in (.\*.xml) do ( echo %25%25i &amp;&amp; del %25%25i )
)
echo ==========================================================</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment