Commit e90e958f authored by 潘栩锋's avatar 潘栩锋 :bicyclist:

主界面全部模块化

parent 40aae651
......@@ -91,6 +91,7 @@
</Compile>
<Compile Include="BlowingDetectCore.cs" />
<Compile Include="CalFilmLen.cs" />
<Compile Include="LCUS1.cs" />
<Compile Include="PgErrorAllTable.xaml.cs">
<DependentUpon>PgErrorAllTable.xaml</DependentUpon>
</Compile>
......@@ -133,6 +134,12 @@
<Compile Include="UIModule\DynAreaIO.xaml.cs">
<DependentUpon>DynAreaIO.xaml</DependentUpon>
</Compile>
<Compile Include="UIModule\DynAreaProfile.xaml.cs">
<DependentUpon>DynAreaProfile.xaml</DependentUpon>
</Compile>
<Compile Include="UIModule\DynAreaThick.xaml.cs">
<DependentUpon>DynAreaThick.xaml</DependentUpon>
</Compile>
<Compile Include="UIModule\FixGraph\FixGraph.xaml.cs">
<DependentUpon>FixGraph.xaml</DependentUpon>
</Compile>
......@@ -213,6 +220,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UIModule\DynAreaProfile.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UIModule\DynAreaThick.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UIModule\FixGraph\FixGraph.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
......
......@@ -21,6 +21,7 @@ using FLY.Thick.Base.Common;
using System.Globalization;
using System.Threading;
using ThickTcpUiInWindow;
using System.Threading.Tasks;
namespace FLY.Thick.Blowing.UI.Fix.Client
{
......@@ -62,76 +63,77 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
LoadingProgress lp;
PgMain pMain;
void Init()
async Task Init()
{
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
//---------------------------------------------------------
// 创建 与服务器端 连接
gage = new TDGage();
gage.mSysParam.Load();
gage.mSysParam.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(mSysParam_PropertyChanged);
FLY.UI.OSK.KeyboardBehavior.Enable = gage.mSysParam.HaveOSK;
FLY.UI.OSK.KeyboardBehavior.EnableMouseDown = gage.mSysParam.HaveOSK_mouse;
UpdateCulture();
gage.Init2();
//客户端,通过 LCUS 报警!!!!!
gage.mWarningService.PropertyChanged += (s, e) =>
{
gage = new TDGage();
gage.mSysParam.Load();
gage.mSysParam.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(mSysParam_PropertyChanged);
FLY.UI.OSK.KeyboardBehavior.Enable = gage.mSysParam.HaveOSK;
FLY.UI.OSK.KeyboardBehavior.EnableMouseDown = gage.mSysParam.HaveOSK_mouse;
UpdateCulture();
if (e.PropertyName == "IsRinging")
{
if ((gage.mSysParam as SysParam).EnableLCUS1)
{
if (gage.mWarningService.IsRinging)
{
gage.mLCUS.On();
}
else
{
gage.mLCUS.Off();
}
}
}
};
Application.Current.Properties["Gage"] = gage;
Application.Current.Properties["Password"] = gage.mPasswordService;
Application.Current.Properties["NavigationService"] = NavigationService;
lp.Progress += 10;
await Task.Delay(10);
//启动 OnPoll 系统
FObjBase.PollModule.Current.Start();
lp.Progress += 10;
await Task.Delay(10);
}
gage.Init2();
lp.Progress += 10;
}));
System.Threading.Thread.Sleep(10);
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
Application.Current.Properties["Gage"] = gage;
Application.Current.Properties["Password"] = gage.mPasswordService;
Application.Current.Properties["NavigationService"] = NavigationService;
//gage.mWarningService.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(mWarningService_PropertyChanged);
lp.Progress += 10;
}));
System.Threading.Thread.Sleep(10);
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
FObjBase.PollModule.Current.Start();
lp.Progress += 10;
}));
System.Threading.Thread.Sleep(10);
}
private void NavigationWindow_Loaded(object sender, RoutedEventArgs e)
private async void NavigationWindow_Loaded(object sender, RoutedEventArgs e)
{
lp = new LoadingProgress();
Application.Current.Properties.Add("LoadingProgress", lp);
Application.Current.Properties["LoadingProgress"] = lp;
//---------------------------------------------------------
//转到进度条页面
Page_Loading p = new Page_Loading();
p.DataContext = lp;
NavigationService.Navigate(p);
//---------------------------------------------------------
//初始化
await Init();
Thread t1 = new Thread(() =>
//---------------------------------------------------------
//转到主界面
pMain = new PgMain();
await pMain.Init(gage);
NavigationService.Navigate(pMain);
pMain.Loaded += (s, e1) =>
{
Init();
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
pMain = new PgMain();
lp.Progress += 10;
}));
System.Threading.Thread.Sleep(10);
pMain.Init(gage);
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
NavigationService.Navigate(pMain);
pMain.Loaded += (s, e1) =>
{
NavigationService.RemoveBackEntry();
};
}));
});
t1.Start();
NavigationService.RemoveBackEntry();
};
}
private void UpdateCulture()
{
......
......@@ -38,6 +38,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
private void Page_Loaded(object sender, RoutedEventArgs e)
{
this.DataContext = msysparam;
textblock_lcus.DataContext = gage.mLCUS;
}
......@@ -82,10 +83,6 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
gage.mBulkDataClient.Clear();
}
private void button_clear_Click(object sender, RoutedEventArgs e)
{
}
private void button_apply_Click(object sender, RoutedEventArgs e)
{
......@@ -96,6 +93,16 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
TimeSpan.FromSeconds(2));
return;
}
private void button_bellring_Click(object sender, RoutedEventArgs e)
{
gage.mLCUS.On();
}
private void button_belloff_Click(object sender, RoutedEventArgs e)
{
gage.mLCUS.Off();
}
}
}
......@@ -15,7 +15,14 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
{
#region 数据文件需要保存的数据项
public int WindowSize { get; set; } = 30;
/// <summary>
/// USB 继电器 串口地址
/// </summary>
public string LCUS1_PortName { get; set; } = "COM1";
/// <summary>
/// 使能USB 继电器
/// </summary>
public bool EnableLCUS1 { get; set; }
#endregion
......@@ -29,7 +36,9 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
List<string> propertynames = new List<string>();
propertynames.AddRange(base.GetSavePropertyNames());
propertynames.AddRange(new string[]{
"WindowSize"
"WindowSize",
"LCUS1_PortName",
"EnableLCUS1"
});
return propertynames.ToArray();
}
......
......@@ -26,7 +26,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
/// 系统参数
/// </summary>
//public SysParam mSysParam;
public LCUS1 mLCUS;
#endregion
#region 服务器数据--------------------------------------------------------------
/// <summary>
......@@ -37,12 +37,14 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
public PasswordServiceClient mPasswordService;
public BlowingFixServiceClient mRenZiJiaService;
public BlowingFixProfileServiceClient mProfile;
public BlowingDetectServiceClient mBDetect;
public FLY.OBJComponents.Client.WarningServiceClient mWarningService;
public FLY.OBJComponents.Client.BufferWindow<OBJComponents.Common.FlyData_WarningHistory> mWarningReasonWindow;
#endregion
#endregion
......@@ -63,9 +65,13 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
{
#region 提取保存的数据
mSysParam = new SysParam();//系统参数
SysParam sysParam = new SysParam();
mSysParam = sysParam;//系统参数
#endregion
mLCUS = new LCUS1();
Misc.BindingOperations.SetBinding(mSysParam, "LCUS1_PortName", mLCUS, "PortName");
#region 与服务器同步的数据
var bulkDataServiceClient = new BulkDataServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.BULK_ID);
mBulkDataClient = new BulkDataServiceClientAdv(bulkDataServiceClient);
......@@ -80,12 +86,12 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
mTDGageService = new TDGageServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.TDGAGE_ID);
mFixService = new FixServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.FIX_ID);
mPasswordService = new PasswordServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.PASSWORD_ID);
mRenZiJiaService = new BlowingFixServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.RENZIJIA_ID);
mBDetect = new BlowingDetectServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.BDETECT_ID);
mProfile = new BlowingFixProfileServiceClient(FLY.Thick.Blowing.OBJ_INTERFACE.OBJ_INTERFACE_ID.BFPROFILE_ID);
#endregion
}
......@@ -110,7 +116,8 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
mFixService.ID,
mPasswordService.ID,
mRenZiJiaService.ID,
mBDetect.ID
mBDetect.ID,
mProfile.ID
});
objids.AddRange(mWarningService.GetIDs());
......
......@@ -4,9 +4,136 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FLY.Thick.Blowing.UI.Fix.Client.UIModule"
xmlns:iservice="clr-namespace:FLY.Thick.Blowing.IService;assembly=FLY.Thick.Blowing"
xmlns:misc="clr-namespace:Misc;assembly=MISC"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
</Grid>
d:DesignWidth="250">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/ThickTcpUiInWindow;component/Converter/Dictionary_MyConv.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TextBlock" x:Key="TextBlockStyle_ItemHeader">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontFamily" Value="YouYuan"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="#FF3B3B3B"/>
<Setter Property="Margin" Value="5,0"/>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Button Name="Border_Blowing" Click="Border_Blowing_Click" Style="{StaticResource ButtonStyle_empty}" >
<StackPanel>
<Border Style="{StaticResource BorderStyle_module}" Name="Border_Width" >
<StackPanel Margin="2">
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="线速度" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding FilmVelocity, StringFormat={}{0:F1}}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="m/min" FontSize="12" />
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
<Border Style="{StaticResource BorderStyle_module}" Visibility="{Binding EPCType, Converter={StaticResource e2visconv_collapsed}, ConverterParameter={x:Static iservice:RenZiJiaFixEPCType.EPCA10}}">
<StackPanel Margin="2">
<Grid Margin="2">
<Grid Visibility="{Binding EPCIsRunning, Converter={StaticResource visbilityconv}, ConverterParameter=HiddenWhenTrue}">
<Rectangle Fill="{StaticResource Color_theme_static}" Height="24"/>
<TextBlock Text="停止中..." Margin="2" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="White"/>
</Grid>
<Grid Visibility="{Binding EPCIsRunning, Converter={StaticResource visbilityconv}, ConverterParameter=Hidden}">
<Rectangle Fill="{StaticResource Color_theme_activity}" Height="24"/>
<TextBlock Text="工作中..." Margin="2" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="White"/>
</Grid>
</Grid>
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="182*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="样品0" Style="{StaticResource TextBlockStyle_ItemHeader}" />
<TextBlock Text="{Binding SampleAD}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}"/>
</StackPanel>
<Grid Grid.Column="1" Width="80">
<Rectangle Stroke="{StaticResource Color_theme_activity}"/>
<Grid Margin="2" >
<Rectangle Fill="{StaticResource Color_theme_static}" x:Name="rectangle_bg_epc"/>
<Rectangle HorizontalAlignment="Left" Fill="{StaticResource Color_theme_activity}" >
<Rectangle.Width>
<MultiBinding Converter="{StaticResource ratioconv_ts}" Mode="OneWay">
<Binding Path="SampleTimer" />
<Binding Path="SampleInterval" />
<Binding Path="ActualWidth" ElementName="rectangle_bg_epc"/>
</MultiBinding>
</Rectangle.Width>
</Rectangle>
<TextBlock Text="{Binding SampleTimer, Converter={StaticResource ts2minsecconv}}" FontSize="20" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="White"/>
</Grid>
</Grid>
</Grid>
</StackPanel>
</Border>
<Border x:Name="border_bDetect" Style="{StaticResource BorderStyle_module}" >
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Viewbox MaxWidth="130" Height="70">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock FontWeight="Bold" FontFamily="Microsoft Sans Serif" Foreground="#FF3B3B3B" Text="{Binding Angle, StringFormat={}{0:F0}}" FontSize="50" VerticalAlignment="Center" />
<TextBlock Grid.Column="1" Text="°" FontSize="22" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<Grid Grid.Column="1" >
<TextBlock FontSize="22" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Right" VerticalAlignment="Bottom" Foreground="#FF3B3B3B" >
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="正"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Direction}" Value="{x:Static misc:DIRECTION.BACKWARD}">
<Setter Property="Text" Value="反"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Grid>
</Viewbox>
<StackPanel Margin="2" Grid.Column="1">
<StackPanel Orientation="Horizontal" Margin="2">
<StackPanel Orientation="Horizontal" Background="Black">
<TextBlock Text="{Binding RenZiJiaPeriod, Converter={StaticResource ResourceKey=timespanconv}}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="White" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="min/R" FontSize="12" Foreground="White"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="2">
<StackPanel Orientation="Horizontal" Background="#FFE8E8E8">
<TextBlock Text="{Binding PastTime, Converter={StaticResource ResourceKey=timespanconv}, Mode=OneWay}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="Black" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="min" FontSize="12" Foreground="Black"/>
</StackPanel>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</StackPanel>
</Button>
</UserControl>
using System;
using FLY.UI.Module;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
......@@ -20,9 +21,76 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
/// </summary>
public partial class DynAreaBlowing : UserControl
{
public DynAreaBlowing()
{
InitializeComponent();
}
public void Init(int id)
{
var gage = Application.Current.Properties["Gage"] as TDGage;
Border_Blowing.DataContext = gage.mRenZiJiaService;
border_bDetect.DataContext = gage.mBDetect;
Border_Width.DataContext = gage.mBDetect;
}
private void Border_Blowing_Click(object sender, RoutedEventArgs e)
{
var gage = Application.Current.Properties["Gage"] as TDGage;
PgBlowing p = new PgBlowing();
p.Init(gage.mSysParam.ServerIPEP);
(Application.Current.Properties["NavigationService"] as NavigationService).Navigate(p);
}
}
public class UIModule_DynAreaBlowing : IUIModule
{
/// <summary>
/// 控件标题
/// 它的值取决于culture
/// </summary>
public string Title
{
get
{
return "吹膜动态";
}
}
/// <summary>
/// 控件
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetComponent(int id)
{
DynAreaBlowing graph = new DynAreaBlowing();
graph.Init(id);
return graph;
}
/// <summary>
/// 控件缩略图,用于编辑界面时,大致看看
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetThumbnail(int id)
{
return new System.Windows.Controls.Grid();
}
/// <summary>
/// 给出全部控件ID, 控件自行删除没有的参数
/// </summary>
/// <param name="IDs"></param>
public void MatchParam(int[] IDs)
{
}
}
}
......@@ -25,7 +25,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
public partial class DynAreaIO : UserControl
{
DynAreaIOViewModel viewModel;
TDGage gage;
public DynAreaIO()
{
InitializeComponent();
......@@ -35,19 +35,14 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
public void Init(int id)
{
//获取设备
gage = Application.Current.Properties["Gage"] as TDGage;
viewModel = new DynAreaIOViewModel();
viewModel.Init(gage.mDynArea, gage.mWarningReasonWindow);
viewModel.Init();
this.DataContext = viewModel;
}
protected virtual void Border_IO_Click(object sender, RoutedEventArgs e)
{
//if (DynAreaIOParams.Current.IODespWindowType != null)
//{
// Window w = Activator.CreateInstance(DynAreaIOParams.Current.IODespWindowType) as Window;
// w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
// w.ShowDialog();
//}
PgErrorTable p = new PgErrorTable();
p.Init();
(Application.Current.Properties["NavigationService"] as NavigationService).Navigate(p);
......@@ -80,13 +75,19 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
DynArea mDynArea;
BufferWindow<OBJComponents.Common.FlyData_WarningHistory> mWindow;
DispatcherTimer timer_error;
private int reason_list_index = -1;
public void Init( DynArea dynArea, OBJComponents.Client.BufferWindow<OBJComponents.Common.FlyData_WarningHistory> mWarningReasonWindow)
public void Init()
{
TDGage gage = Application.Current.Properties["Gage"] as TDGage;
//创建窗口观察 报警原因列表
mWindow = mWarningReasonWindow;
mDynArea = dynArea;
mDynArea = gage.mDynArea;
mWindow = gage.mWarningReasonWindow;
Misc.BindingOperations.SetBinding(mDynArea, "IStatus", this, "IStatus");
Misc.BindingOperations.SetBinding(mDynArea, "OStatus", this, "OStatus");
Misc.BindingOperations.SetBinding(mDynArea, "Hrs", this, "Hrs");
......@@ -132,6 +133,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
new FObjBase.PollModule.PollHandler(delegate ()
{
reason_list_index = mWindow.Record.Count() - 1;
UpdateError();
}), this, MARKNO_UPDATEERROR);
......@@ -236,35 +238,35 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
}
}
/// <summary>
///
/// </summary>
public class DynAreaIOParams
{
public Type IODespWindowType = null;
static DynAreaIOParams()
{
}
static DynAreaIOParams current = null;
public static DynAreaIOParams Current
{
get
{
if (current == null)
{
current = new DynAreaIOParams();
}
return current;
}
}
public DynAreaIOParams()
{
IODespWindowType = typeof(WdIOTip);
}
}
///// <summary>
/////
///// </summary>
//public class DynAreaIOParams
//{
// public Type IODespWindowType = null;
// static DynAreaIOParams()
// {
// }
// static DynAreaIOParams current = null;
// public static DynAreaIOParams Current
// {
// get
// {
// if (current == null)
// {
// current = new DynAreaIOParams();
// }
// return current;
// }
// }
// public DynAreaIOParams()
// {
// IODespWindowType = typeof(WdIOTip);
// }
//}
......
<UserControl x:Class="FLY.Thick.Blowing.UI.Fix.Client.UIModule.DynAreaProfile"
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:FLY.Thick.Blowing.UI.Fix.Client.UIModule"
xmlns:blowing_common="clr-namespace:FLY.Thick.Blowing.Common;assembly=FLY.Thick.Blowing"
mc:Ignorable="d" >
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/ThickTcpUiInWindow;component/Converter/Dictionary_MyConv.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TextBlock" x:Key="TextBlockStyle_ItemHeader">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontFamily" Value="YouYuan"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="#FF3B3B3B"/>
<Setter Property="Margin" Value="5,0"/>
</Style>
<blowing_common:BlowingFixProfileParam x:Key="profile_param" MMode="Bag"/>
</ResourceDictionary>
</UserControl.Resources>
<Button Click="button_profile_click" Style="{StaticResource ButtonStyle_empty}" d:DataContext="{StaticResource profile_param}">
<Border Style="{StaticResource BorderStyle_module}" Name="Border_Profile">
<StackPanel Margin="2">
<Grid Margin="2">
<Rectangle Name="rectangle_profile" Fill="{StaticResource Color_theme_activity}" Height="24"/>
<Viewbox MaxWidth="{Binding ActualWidth, ElementName=rectangle_profile}" MaxHeight="24" >
<TextBlock Text="{Binding PName}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="White" />
</Viewbox>
</Grid>
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="182*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal">
<TextBlock Text="A" Style="{StaticResource TextBlockStyle_ItemHeader}" />
<TextBlock Text="{Binding K, StringFormat={}{0:F3}}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" />
</StackPanel>
</Grid>
<StackPanel Orientation="Vertical">
<Grid Margin="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="182*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="膜宽" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding FilmWidth}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="2" Grid.Column="1">
<TextBlock Text="膜边" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding FilmPosH}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
</Grid>
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MMode}" Value="Normal">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
<StackPanel Orientation="Vertical">
<Grid Margin="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="182*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="膜宽" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding FilmWidth}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="2" Grid.Column="1">
<TextBlock Text="膜边" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding FilmPosH}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_activity}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
</Grid>
<Grid Margin="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="182*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="插边" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding BagFold0}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_static}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="2" Grid.Column="1">
<TextBlock Text="插边" FontSize="12" FontWeight="Bold" FontFamily="YouYuan" TextAlignment="Center" HorizontalAlignment="Center" Foreground="#FF3B3B3B" />
<StackPanel Orientation="Horizontal" Margin="5,0">
<TextBlock Text="{Binding BagFold1}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" Foreground="{StaticResource Color_theme_static}" />
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent_mm}" Text="mm" FontSize="12" />
</StackPanel>
</StackPanel>
</Grid>
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MMode}" Value="Bag">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
</StackPanel>
</Border>
</Button>
</UserControl>
using FLY.Thick.Blowing.Client;
using FLY.UI.Module;
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;
namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
{
/// <summary>
/// DynAreaProfile.xaml 的交互逻辑
/// </summary>
public partial class DynAreaProfile : UserControl
{
public DynAreaProfile()
{
InitializeComponent();
}
public void Init(int id)
{
var gage = Application.Current.Properties["Gage"] as TDGage;
Border_Profile.DataContext = gage.mProfile.Param;
}
private void button_profile_click(object sender, RoutedEventArgs e)
{
var gage = Application.Current.Properties["Gage"] as TDGage;
PgProfileBlowing p = new PgProfileBlowing();
p.Init(gage.mSysParam.ServerIPEP);
(Application.Current.Properties["NavigationService"] as NavigationService).Navigate(p);
}
}
public class UIModule_DynAreaProfile : IUIModule
{
/// <summary>
/// 控件标题
/// 它的值取决于culture
/// </summary>
public string Title
{
get
{
return "产品动态";
}
}
/// <summary>
/// 控件
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetComponent(int id)
{
DynAreaProfile graph = new DynAreaProfile();
graph.Init(id);
return graph;
}
/// <summary>
/// 控件缩略图,用于编辑界面时,大致看看
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetThumbnail(int id)
{
return new System.Windows.Controls.Grid();
}
/// <summary>
/// 给出全部控件ID, 控件自行删除没有的参数
/// </summary>
/// <param name="IDs"></param>
public void MatchParam(int[] IDs)
{
}
}
}
<UserControl x:Class="FLY.Thick.Blowing.UI.Fix.Client.UIModule.DynAreaThick"
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:FLY.Thick.Blowing.UI.Fix.Client.UIModule"
mc:Ignorable="d" d:DesignWidth="250">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/ThickTcpUiInWindow;component/Converter/Dictionary_MyConv.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TextBlock" x:Key="TextBlockStyle_ItemHeader">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontFamily" Value="YouYuan"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="#FF3B3B3B"/>
<Setter Property="Margin" Value="5,0"/>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Button Style="{StaticResource ButtonStyle_empty}">
<Border Style="{StaticResource BorderStyle_module}" Name="Border_AD" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Border Background="{StaticResource Background_Title}" CornerRadius="3" Height="130" >
<Grid>
<Viewbox Margin="10">
<TextBlock Text="{Binding Thick,Converter={StaticResource ResourceKey=thickconv}}" Foreground="White" FontSize="30" FontWeight="Bold" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Viewbox>
<TextBlock Text="{Binding ControllerState}" FontSize="12" FontFamily="Microsoft Sans Serif" HorizontalAlignment="Right" VerticalAlignment="Bottom" Foreground="White" Margin="5"/>
</Grid>
</Border>
<StackPanel Grid.Row="1" Margin="2">
<Grid Margin="2" Name="grid_ad">
<Rectangle Fill="#FF86C2E9" HorizontalAlignment="Left">
<Rectangle.Width>
<MultiBinding Converter="{StaticResource ratioconv}" Mode="OneWay">
<Binding Path="AD" />
<Binding Path="ADMax" />
<Binding Path="ActualWidth" ElementName="grid_ad"/>
</MultiBinding>
</Rectangle.Width>
</Rectangle>
<StackPanel Orientation="Horizontal">
<TextBlock Text="AD" Style="{StaticResource TextBlockStyle_ItemHeader}" />
<TextBlock Text="{Binding AD, Converter={StaticResource ResourceKey=intconv}}" FontSize="24" FontFamily="Microsoft Sans Serif" TextAlignment="Center" HorizontalAlignment="Center" />
</StackPanel>
</Grid>
</StackPanel>
</Grid>
</Border>
</Button>
</UserControl>
using FLY.UI.Module;
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;
namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
{
/// <summary>
/// DynAreaThick.xaml 的交互逻辑
/// </summary>
public partial class DynAreaThick : UserControl
{
public DynAreaThick()
{
InitializeComponent();
}
public void Init(int id)
{
var gage = Application.Current.Properties["Gage"] as TDGage;
this.DataContext = gage.mDynArea;
}
}
public class UIModule_DynAreaThick : IUIModule
{
/// <summary>
/// 控件标题
/// 它的值取决于culture
/// </summary>
public string Title
{
get
{
return "厚度动态";
}
}
/// <summary>
/// 控件
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetComponent(int id)
{
DynAreaThick graph = new DynAreaThick();
graph.Init(id);
return graph;
}
/// <summary>
/// 控件缩略图,用于编辑界面时,大致看看
/// 创建时,需要给它唯一ID,让加载自己的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public FrameworkElement GetThumbnail(int id)
{
return new System.Windows.Controls.Grid();
}
/// <summary>
/// 给出全部控件ID, 控件自行删除没有的参数
/// </summary>
/// <param name="IDs"></param>
public void MatchParam(int[] IDs)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.Blowing.UI.Fix.Client
{
public class LCUS1:INotifyPropertyChanged
{
public string PortName { get; set; } = "COM6";
public string ErrMsg { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public void On()
{
Task.Factory.StartNew(() =>
{
try
{
SerialPort serial = new SerialPort();
serial.PortName = PortName;
serial.BaudRate = 9600;
serial.Open();
byte[] buf = new byte[] { 0xa0, 0x01, 0x01, 0xa2 };
serial.Write(buf, 0, buf.Length);
serial.Close();
ErrMsg = $"{DateTime.Now} ON";
}
catch (Exception e)
{
ErrMsg = e.Message;
}
});
}
public void Off()
{
Task.Factory.StartNew(() =>
{
try
{
SerialPort serial = new SerialPort();
serial.PortName = PortName;
serial.BaudRate = 9600;
serial.Open();
byte[] buf = new byte[] { 0xa0, 0x01, 0x00, 0xa1 };
serial.Write(buf, 0, buf.Length);
serial.Close();
ErrMsg = $"{DateTime.Now} OFF";
}
catch (Exception e)
{
ErrMsg = e.Message;
}
});
}
}
}
......@@ -31,7 +31,15 @@ namespace FLY.Thick.Blowing.UI.Fix.Server
MessageBoxButton.OK, MessageBoxImage.Error);
};
//AutoMapper 初始化
//所有使用到 AutoMapper 的程序集 必须主动显式 在这里加载。
//当为 dll 反射加载的 程序集, 应该在此提前 加载。
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
//var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
//cfg.AddMaps(assemblies);
cfg.AddMaps("FLY.Thick.Blowing.UI.Fix.Server");
AutoMapper.Mapper.Initialize(cfg);
}
}
......
......@@ -149,6 +149,9 @@
<PackageReference Include="Costura.Fody">
<Version>3.3.3</Version>
</PackageReference>
<PackageReference Include="System.Data.SQLite">
<Version>1.0.111</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Resource Include="FodyWeavers.xml">
......
......@@ -1891,8 +1891,18 @@ namespace FLY.Thick.Blowing.Server
}
}
}
if(mFrameInfoList.Count()>0)
{
FRAME_INFO frameinfo = mFrameInfoList.Last(f => f.HasChanged);
FRAME_INFO frameinfo = null;
try
{
frameinfo = mFrameInfoList.Last(f => f.HasChanged);
}
catch
{
}
if (frameinfo != null)
{
int[] thicks = IsNeedMap() ? frameinfo.frame_map : frameinfo.frame;
......@@ -1900,6 +1910,7 @@ namespace FLY.Thick.Blowing.Server
mBulkDB.SetTempFrame(0, ToRealThicks(thicks));
}
}
foreach (var frameinfo in mFrameInfoList)
{
frameinfo.Submit();
......
......@@ -255,8 +255,6 @@ namespace FLY.Thick.Blowing.Server
mGMManager.AddGM(mGMFix);
//---------------------------------------------------------------------------------------------------------------
//GM_RenZiJiaFix_Create
mGMRenZiJiaFix = new GM_BlowingFix(mFlyAD);
......
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
\ No newline at end of file
<Application x:Class="DB.Browser.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DB.Browser"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace DB.Browser
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
}
}
<?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>{77A8A78B-6C8B-4231-821F-8250B48AFBFB}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>DB.Browser</RootNamespace>
<AssemblyName>DB.Browser</AssemblyName>
<TargetFrameworkVersion>v4.6.1</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>
</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="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>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<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="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</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="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>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.572
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DB.Browser", "DB.Browser.csproj", "{77A8A78B-6C8B-4231-821F-8250B48AFBFB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{77A8A78B-6C8B-4231-821F-8250B48AFBFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77A8A78B-6C8B-4231-821F-8250B48AFBFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77A8A78B-6C8B-4231-821F-8250B48AFBFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77A8A78B-6C8B-4231-821F-8250B48AFBFB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {06A6249F-08E1-4A6A-AF65-C00EF2B915AD}
EndGlobalSection
EndGlobal
<Window x:Class="DB.Browser.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DB.Browser"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
</Grid>
</Window>
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;
namespace DB.Browser
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("DB.Browser")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DB.Browser")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[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 DB.Browser.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("DB.Browser.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 DB.Browser.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
Subproject commit c56a1e007fffaf3650348924559c0db47a22592b
Subproject commit 1205881fabaf2866240810954569fd8ce1818968
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