电气前端提交
This commit is contained in:
parent
d03629aab0
commit
e932112a96
File diff suppressed because one or more lines are too long
268
newFront/c#前端/SWS.Commons/GlobalObject.cs
Normal file
268
newFront/c#前端/SWS.Commons/GlobalObject.cs
Normal file
@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text.RegularExpressions;
|
||||
using IniParser;
|
||||
using Prism.DryIoc;
|
||||
using Prism.Ioc;
|
||||
using SWS.Model;
|
||||
using Unity;
|
||||
|
||||
namespace SWS.Commons
|
||||
{
|
||||
public class GlobalObject
|
||||
{
|
||||
public static string templateForDrawing = "普通图框";
|
||||
public static string editorPre = "DI_Electrical ";
|
||||
public static string TemplateFile_Template = "普通图框";
|
||||
public static string configPath = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\BricsCAD Electrical\Config\AppConfig.ini");
|
||||
|
||||
#region DataItemDetail列表转换成树形结果
|
||||
/// <summary>
|
||||
/// DataItemDetail列表转换成树形结果
|
||||
/// </summary>
|
||||
/// <param name="listData">列表数据</param>
|
||||
/// <param name="isChildres">是否子节点遍历添加</param>
|
||||
/// <returns></returns>
|
||||
public static ObservableCollection<TreeModel> DataItemDetailsToTree(List<ec_dataitemdetail> listData, bool isChildres = false)
|
||||
{
|
||||
ObservableCollection<TreeModel> result = new ObservableCollection<TreeModel>();
|
||||
List<ec_dataitemdetail> list = new List<ec_dataitemdetail>();
|
||||
if (isChildres)
|
||||
{ list = listData; }
|
||||
else
|
||||
{
|
||||
//取所有第一级树
|
||||
list = listData.Where(a => a.UpDataItemDetailID == "0").ToList();
|
||||
}
|
||||
foreach (var data in list)
|
||||
{
|
||||
//获取当前节点的所有子节点
|
||||
var details = listData.Where(a => a.UpDataItemDetailID == data.DataItemDetailID).ToList();
|
||||
if (details.Any())
|
||||
{
|
||||
//获取子节点
|
||||
var childrens = DataItemDetailsToTree(details, true);
|
||||
result.Add(new TreeModel
|
||||
{
|
||||
ID = data.DataItemDetailID,
|
||||
Text = data.DataItemName,
|
||||
ChildNodes = childrens
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有子节点就添加当前节点Node
|
||||
result.Add(new TreeModel
|
||||
{
|
||||
ID = data.DataItemDetailID,
|
||||
Text = data.DataItemName,
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 对象类型树
|
||||
/// <summary>
|
||||
/// 对象类型树
|
||||
/// </summary>
|
||||
public static List<TreeModel> objectTypeTree = new List<TreeModel>();
|
||||
#endregion
|
||||
|
||||
#region 设计浏览树
|
||||
/// <summary>
|
||||
/// 设计浏览树
|
||||
/// </summary>
|
||||
public static List<TreeModel> designTree = new List<TreeModel>();
|
||||
#endregion
|
||||
|
||||
public enum dialogPar
|
||||
{
|
||||
id,
|
||||
textYes,
|
||||
textNo,
|
||||
title,
|
||||
OK,
|
||||
unitTypeId,
|
||||
info,
|
||||
unit,
|
||||
para1,
|
||||
para2
|
||||
}
|
||||
public static IContainerRegistry containerRegistry ;
|
||||
public static IUnityContainer container;
|
||||
public static IContainerExtension _prismContainer ;
|
||||
public static HttpClient client;
|
||||
public static loginRes userInfo;
|
||||
public static List<User> Users;
|
||||
|
||||
public static bool isConfigIniCreateBySys = true;
|
||||
//public static string drawingFileId;
|
||||
public static ec_project curProject;
|
||||
public static DateTime preClickTime = DateTime.Now;
|
||||
public static Unit UnitSelected;
|
||||
public static List<ec_measuring_unit> Units;
|
||||
/// <summary>
|
||||
/// 打开的图纸名列表
|
||||
/// </summary>
|
||||
public static List<DrawingOpened> ListDwgOpened = new List<DrawingOpened>();
|
||||
/// <summary>
|
||||
/// 图纸树上的所有图纸名
|
||||
/// </summary>
|
||||
public static List<string> AllDwgName = new List<string>();
|
||||
public static string currentTagNumber;
|
||||
#region 本地文件目录
|
||||
static string _LocalFileDirectory;
|
||||
/// <summary>
|
||||
/// 获取本地目录文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetLocalFileDirectory()
|
||||
{
|
||||
if (string.IsNullOrEmpty(_LocalFileDirectory))
|
||||
{
|
||||
string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Config.ini");
|
||||
FileIniDataParser parser = new FileIniDataParser();
|
||||
var data = parser.ReadFile(path);
|
||||
_LocalFileDirectory = data["Profile"]["Directory"];
|
||||
return _LocalFileDirectory;
|
||||
}
|
||||
else
|
||||
{ return _LocalFileDirectory; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 设置本地目录文件夹
|
||||
/// </summary>
|
||||
/// <param name="dir">文件夹目录</param>
|
||||
public static void SetLocalFileDirectory(string dir)
|
||||
{ _LocalFileDirectory = dir; }
|
||||
#endregion
|
||||
|
||||
#region 图纸文件所在文件夹
|
||||
/// <summary>
|
||||
/// 图纸文件所在文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetDwgFileFolder()
|
||||
{
|
||||
string path = Path.Combine(GetLocalFileDirectory(), curProject.ProjectIndex.ToString());
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
return path;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 图纸文件备份文件夹
|
||||
/// <summary>
|
||||
/// 图纸文件备份文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetBackupDwgFileFolder()
|
||||
{
|
||||
string path = Path.Combine(GetDwgFileFolder(), "Backup");
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
return path;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据ID获取用户名称
|
||||
/// <summary>
|
||||
/// 根据ID获取用户名称
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetUserNameById(string id)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id))
|
||||
{ return ""; }
|
||||
var user = Users.FirstOrDefault(a => a.F_UserId == id || a.F_Account == id);
|
||||
if (user != null)
|
||||
{ return user.F_RealName; }
|
||||
else
|
||||
{
|
||||
return "";
|
||||
//user = GlobalObject.Users.FirstOrDefault(a => a.F_Account == id);
|
||||
//return user != null ? user.F_RealName : "";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 判断是否是电缆
|
||||
/// <summary>
|
||||
/// 判断是否是电缆
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool IsCable(ec_objecttype obj)
|
||||
{
|
||||
if (obj == null) { return false; }
|
||||
var flag = obj.ObjectTypeName.EndsWith("电缆");
|
||||
return flag;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 取字符串最后的一个或多个数字
|
||||
/// <summary>
|
||||
/// 取字符串最后的一个或多个数字
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <param name="preInput">数字前的字符串</param>
|
||||
/// <param name="num">最后的数字</param>
|
||||
/// <returns></returns>
|
||||
public static bool GetLastNumber(string input, ref string preInput, ref int num)
|
||||
{
|
||||
string pattern = @"(\d+)$"; // 正则表达式,匹配字符串末尾的一个或多个数字
|
||||
Match match = Regex.Match(input, pattern);
|
||||
if (match.Success)
|
||||
{
|
||||
preInput = input.Substring(0, input.Length - match.Value.Length);
|
||||
num = int.Parse(match.Value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="resName">包括命名空间</param>
|
||||
/// <returns></returns>
|
||||
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
|
||||
{
|
||||
string imgPath = $"SWS.Commons.Images.{resName}";
|
||||
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
|
||||
//foreach (string resource in assy.GetManifestResourceNames())
|
||||
//{
|
||||
// Console.WriteLine(resource);//遍历所有的内嵌资源
|
||||
//}
|
||||
System.IO.Stream stream = assy.GetManifestResourceStream(imgPath);
|
||||
if (stream == null)
|
||||
return null;
|
||||
System.Windows.Media.Imaging.BitmapImage img = new System.Windows.Media.Imaging.BitmapImage();
|
||||
img.BeginInit();
|
||||
img.StreamSource = stream;
|
||||
img.EndInit();
|
||||
return img;
|
||||
}
|
||||
|
||||
public static string GetPCInfo()
|
||||
{
|
||||
string computerName = Environment.MachineName; // 获取计算机名称
|
||||
string userName = Environment.UserName; // 获取当前用户名称
|
||||
|
||||
return $"{computerName} 计算机{userName} 用户";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.Commons.Helper.Converter
|
||||
{
|
||||
public class CollectionToStringConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
ObservableCollection<ec_dataitemdetail> WHCPUs = value as ObservableCollection<ec_dataitemdetail>;
|
||||
if (WHCPUs != null)
|
||||
{
|
||||
string sWHCPU = "";
|
||||
for (int i = 0; i < WHCPUs.Count; i++)
|
||||
{
|
||||
if (i!= WHCPUs.Count-1)
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode + "|";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return sWHCPU;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.Commons.Helper.Converter
|
||||
{
|
||||
public class RadGridViewRowToBoolConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||
if (smif != null)
|
||||
{
|
||||
if (smif.Status.Equals("deleted") || smif.Status.Equals("Confirmed"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (smif.type.Equals("信号"))
|
||||
{
|
||||
switch (parameter.ToString())
|
||||
{
|
||||
case "关联的电缆信息":
|
||||
case "关联的通道信息":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (parameter.ToString())
|
||||
{
|
||||
case "组别":
|
||||
case "编码":
|
||||
case "信号类型":
|
||||
case "Min":
|
||||
case "Max":
|
||||
case "单位":
|
||||
case "CODE":
|
||||
case "设备名":
|
||||
case "关联的电缆信息":
|
||||
case "关联的通道信息":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.Commons.Helper.Converter
|
||||
{
|
||||
public class StatusToColourConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||
if (smif != null)
|
||||
{
|
||||
return smif.Status;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
118
newFront/c#前端/SWS.Commons/Helper/FileHelper.cs
Normal file
118
newFront/c#前端/SWS.Commons/Helper/FileHelper.cs
Normal file
@ -0,0 +1,118 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.Commons
|
||||
{
|
||||
public static class FileHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// dwg等文件名是否合法。不带后缀
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidFileName(string fileName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取 Windows 文件系统中不允许出现在文件名中的字符数组
|
||||
char[] invalidChars = Path.GetInvalidFileNameChars();
|
||||
|
||||
// 检查文件名中是否包含非法字符
|
||||
foreach (char c in invalidChars)
|
||||
{
|
||||
if (fileName.IndexOf(c) >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否为保留文件名
|
||||
string[] reservedNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" };
|
||||
string trimmedFileName = Path.GetFileNameWithoutExtension(fileName).Trim().ToUpper();
|
||||
foreach (string reservedName in reservedNames)
|
||||
{
|
||||
if (trimmedFileName == reservedName)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查文件名是否以空格或句点结尾
|
||||
if (fileName.TrimEnd().Length != fileName.Length || fileName.TrimEnd('.').Length != fileName.Length)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static string GetFileMD5(string filePath)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
|
||||
{
|
||||
throw new ArgumentException("文件路径无效或文件不存在", nameof(filePath));
|
||||
}
|
||||
|
||||
using (var md5 = MD5.Create()) // 创建 MD5 哈希算法实例
|
||||
using (var stream = File.OpenRead(filePath)) // 打开文件流
|
||||
{
|
||||
// 计算文件的 MD5 值
|
||||
byte[] hashBytes = md5.ComputeHash(stream);
|
||||
|
||||
// 将字节数组转换为十六进制字符串
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (var b in hashBytes)
|
||||
{
|
||||
sb.Append(b.ToString("x2")); // x2 格式化为两位小写十六进制数
|
||||
}
|
||||
|
||||
return sb.ToString(); // 返回 MD5 值的字符串
|
||||
}
|
||||
}
|
||||
|
||||
#region 检查文件是否被其他进程占用
|
||||
/// <summary>
|
||||
/// 检查文件是否被其他进程占用
|
||||
/// </summary>
|
||||
public static bool IsFileLocked(string filePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 尝试以独占模式打开文件
|
||||
using (FileStream fs = File.Open(
|
||||
filePath,
|
||||
FileMode.Open,
|
||||
FileAccess.ReadWrite,
|
||||
FileShare.None)) // FileShare.None 表示禁止共享
|
||||
{
|
||||
return false; // 成功打开则未被占用
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
// 检查特定错误码
|
||||
int errorCode = Marshal.GetHRForException(ex) & 0xFFFF;
|
||||
return errorCode == 32 || errorCode == 33; // 32: 共享冲突, 33: 进程锁定
|
||||
}
|
||||
catch (UnauthorizedAccessException)
|
||||
{
|
||||
return true; // 无权限访问(可能被占用)
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false; // 其他异常视为未被占用
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
144
newFront/c#前端/SWS.Commons/Helper/LoggerHelper.cs
Normal file
144
newFront/c#前端/SWS.Commons/Helper/LoggerHelper.cs
Normal file
@ -0,0 +1,144 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace SWS.Commons
|
||||
{
|
||||
/// <summary>
|
||||
/// nLog使用帮助类
|
||||
/// </summary>
|
||||
public class LoggerHelper
|
||||
{
|
||||
private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
|
||||
private static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
|
||||
private static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug");
|
||||
private static readonly log4net.ILog logwarn = log4net.LogManager.GetLogger("logwarn");
|
||||
private static readonly log4net.ILog logfatal = log4net.LogManager.GetLogger("logfatal");
|
||||
|
||||
private static LoggerHelper _obj = null;
|
||||
private static string logPath = string.Empty;
|
||||
private LoggerHelper()
|
||||
{
|
||||
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
|
||||
string dllPath = codeBase.Replace("file:///", "");
|
||||
dllPath = Path.GetDirectoryName(dllPath);
|
||||
logPath = Path.Combine(dllPath, "Logs\\");
|
||||
var configFile = new FileInfo(Path.Combine(dllPath, "log4net.config"));
|
||||
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
|
||||
/// </summary>
|
||||
public static LoggerHelper Current
|
||||
{
|
||||
get => _obj ?? (new LoggerHelper());
|
||||
set => _obj = value;
|
||||
}
|
||||
|
||||
#region Debug,调试
|
||||
/// <summary>
|
||||
/// 调试信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Debug(string msg)
|
||||
{
|
||||
logdebug.Debug(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Info,信息
|
||||
/// <summary>
|
||||
/// 普通信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Info(string msg)
|
||||
{
|
||||
loginfo.Info(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Warn,警告
|
||||
/// <summary>
|
||||
/// 警告级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Warn(string msg)
|
||||
{
|
||||
logwarn.Warn(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Error,错误
|
||||
/// <summary>
|
||||
/// 错误级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Error(string msg)
|
||||
{
|
||||
logerror.Error("----------------------------Error BEGIN------------------------------");
|
||||
logerror.Error(msg);
|
||||
logerror.Error("-----------------------------Error END-------------------------------");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Fatal,致命错误
|
||||
/// <summary>
|
||||
/// 致命错误级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
/// <param name="err">需要记录的系统异常。</param>
|
||||
public void Fatal(string msg)
|
||||
{
|
||||
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
|
||||
logerror.Fatal(msg);
|
||||
logerror.Fatal("-----------------------------Fatal END-------------------------------");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 输出json日志
|
||||
|
||||
/// <summary>
|
||||
/// 输出json日志
|
||||
/// </summary>
|
||||
/// <param name="funName">json方法名</param>
|
||||
/// <param name="json">json数据</param>
|
||||
public void WriteJson(string funName, string json)
|
||||
{
|
||||
try
|
||||
{
|
||||
//json路径文件名 Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Logs\"
|
||||
string filename = Path.Combine(logPath, funName + ".json");
|
||||
//判断文件是否被打开占用
|
||||
if (!FileHelper.IsFileLocked(filename))
|
||||
{
|
||||
File.Delete(filename);
|
||||
string strJson = string.Empty;
|
||||
if (json.StartsWith("["))
|
||||
{
|
||||
//格式化json数据 当前为组类型
|
||||
JArray jobj = JArray.Parse(json);
|
||||
strJson = jobj.ToString();
|
||||
}
|
||||
else if (json.StartsWith("{"))
|
||||
{
|
||||
//格式化json数据 当前为类类型
|
||||
JObject jobj = JObject.Parse(json);
|
||||
strJson = jobj.ToString();
|
||||
}
|
||||
//创建json文件,并输出数据
|
||||
FileStream fs = new FileStream(filename, FileMode.Append);
|
||||
StreamWriter wr = null;
|
||||
wr = new StreamWriter(fs);
|
||||
wr.WriteLine(strJson);
|
||||
wr.Close();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
BIN
newFront/c#前端/SWS.Commons/Images/OpenProject.png
Normal file
BIN
newFront/c#前端/SWS.Commons/Images/OpenProject.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 916 B |
BIN
newFront/c#前端/SWS.Commons/Images/SinalManage.png
Normal file
BIN
newFront/c#前端/SWS.Commons/Images/SinalManage.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 755 B |
33
newFront/c#前端/SWS.Commons/Properties/AssemblyInfo.cs
Normal file
33
newFront/c#前端/SWS.Commons/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("SWS.Commons")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("SWS.Commons")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("9ac724f6-883d-4357-9422-602748f25b69")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
134
newFront/c#前端/SWS.Commons/SWS.Commons.csproj
Normal file
134
newFront/c#前端/SWS.Commons/SWS.Commons.csproj
Normal file
@ -0,0 +1,134 @@
|
||||
<?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>{9AC724F6-883D-4357-9422-602748F25B69}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SWS.Commons</RootNamespace>
|
||||
<AssemblyName>SWS.Commons</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<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>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</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>
|
||||
<ItemGroup>
|
||||
<Reference Include="DryIoc, Version=4.7.7.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DryIoc.dll.4.7.7\lib\net45\DryIoc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="INIFileParser">
|
||||
<HintPath>..\packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=3.1.0.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.3.1.0\lib\net462\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.1, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.1\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.122\lib\net462\Microsoft.Xaml.Behaviors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="Prism, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Prism.Core.8.1.97\lib\net47\Prism.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Prism.DryIoc.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Prism.DryIoc.8.1.97\lib\net47\Prism.DryIoc.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Prism.Unity.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Prism.Unity.8.1.97\lib\net47\Prism.Unity.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Prism.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Prism.Wpf.8.1.97\lib\net47\Prism.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Windows" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Windows.Presentation" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Telerik.Windows.Controls, Version=2024.1.130.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Unity.Abstractions, Version=5.11.7.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Unity.Abstractions.5.11.7\lib\net48\Unity.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Unity.Container, Version=5.11.11.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Unity.Container.5.11.11\lib\net48\Unity.Container.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GlobalObject.cs" />
|
||||
<Compile Include="Helper\Converter\CollectionToStringConverter.cs" />
|
||||
<Compile Include="Helper\Converter\RadGridViewRowToBoolConverter.cs" />
|
||||
<Compile Include="Helper\Converter\StatusToColourConverter.cs" />
|
||||
<Compile Include="Helper\FileHelper.cs" />
|
||||
<Compile Include="Helper\LoggerHelper.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="log4net.config">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SWS.Model\SWS.Model.csproj">
|
||||
<Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project>
|
||||
<Name>SWS.Model</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Images\OpenProject.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Images\SinalManage.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
31
newFront/c#前端/SWS.Commons/app.config
Normal file
31
newFront/c#前端/SWS.Commons/app.config
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.dll
Normal file
Binary file not shown.
5867
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.xml
Normal file
5867
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.dll
Normal file
Binary file not shown.
1181
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.xml
Normal file
1181
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.xml
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -0,0 +1,417 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Bcl.AsyncInterfaces</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
|
||||
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
|
||||
<summary>
|
||||
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
|
||||
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
|
||||
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
|
||||
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
|
||||
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
|
||||
<summary>
|
||||
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
|
||||
or null if no special context is required.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
|
||||
<summary>Whether the current operation has completed.</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
|
||||
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
|
||||
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
|
||||
</member>
|
||||
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
|
||||
<summary>The current version of this value, used to help prevent misuse.</summary>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
|
||||
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
|
||||
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
|
||||
<summary>Resets to prepare for the next operation.</summary>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
|
||||
<summary>Completes with a successful result.</summary>
|
||||
<param name="result">The result.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
|
||||
<summary>Complets with an error.</summary>
|
||||
<param name="error"></param>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
|
||||
<summary>Gets the operation version.</summary>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
|
||||
<summary>Gets the status of the operation.</summary>
|
||||
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
|
||||
<summary>Gets the result of the operation.</summary>
|
||||
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
|
||||
<summary>Schedules the continuation action for this operation.</summary>
|
||||
<param name="continuation">The continuation to invoke when the operation has completed.</param>
|
||||
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
|
||||
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||
<param name="flags">The flags describing the behavior of the continuation.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
|
||||
<summary>Ensures that the specified token matches the current version.</summary>
|
||||
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
|
||||
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
|
||||
<summary>
|
||||
Invokes the continuation with the appropriate captured context / scheduler.
|
||||
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
|
||||
running within that <see cref="T:System.Threading.ExecutionContext"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
|
||||
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
|
||||
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
|
||||
<param name="source">The source async disposable.</param>
|
||||
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||
<returns>The configured async disposable.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
|
||||
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||
<param name="source">The source enumerable being iterated.</param>
|
||||
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||
<returns>The configured enumerable.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
|
||||
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||
<param name="source">The source enumerable being iterated.</param>
|
||||
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||
<returns>The configured enumerable.</returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
|
||||
<summary>Represents a builder for asynchronous iterators.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
|
||||
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
|
||||
<returns>The initialized instance.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
|
||||
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
|
||||
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||
<param name="stateMachine">The state machine instance, passed by reference.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
|
||||
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||
<param name="awaiter">The awaiter.</param>
|
||||
<param name="stateMachine">The state machine.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||
<param name="awaiter">The awaiter.</param>
|
||||
<param name="stateMachine">The state machine.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
|
||||
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
|
||||
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
|
||||
<summary>Indicates whether a method is an asynchronous iterator.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
|
||||
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
|
||||
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredAsyncDisposable.DisposeAsync">
|
||||
<summary>Asynchronously releases the unmanaged resources used by the <see cref="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable" />.</summary>
|
||||
<returns>A task that represents the asynchronous dispose operation.</returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
|
||||
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
|
||||
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||
<returns>The configured enumerable.</returns>
|
||||
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
|
||||
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||
<returns>The configured enumerable.</returns>
|
||||
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator">
|
||||
<summary>Returns an enumerator that iterates asynchronously through collections that enables cancelable iteration and configured awaits.</summary>
|
||||
<returns>An enumerator for the <see cref="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1" /> class.</returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
|
||||
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
|
||||
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||
<returns>
|
||||
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
|
||||
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
|
||||
passed the end of the collection.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
|
||||
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or
|
||||
resetting unmanaged resources asynchronously.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute">
|
||||
<summary>Allows users of async-enumerable methods to mark the parameter that should receive the cancellation token value from <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)" />.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.EnumeratorCancellationAttribute.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute" /> class.</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
|
||||
<summary>
|
||||
Attribute used to indicate a source generator should create a function for marshalling
|
||||
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
|
||||
</summary>
|
||||
<remarks>
|
||||
This attribute is meaningless if the source generator associated with it is not enabled.
|
||||
The current built-in source generator only supports C# and only supplies an implementation when
|
||||
applied to static, partial, non-generic methods.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
|
||||
</summary>
|
||||
<param name="libraryName">Name of the library containing the import.</param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
|
||||
<summary>
|
||||
Gets the name of the library containing the import.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
|
||||
<summary>
|
||||
Gets or sets the name of the entry point to be called.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
|
||||
<summary>
|
||||
Gets or sets how to marshal string arguments to the method.
|
||||
</summary>
|
||||
<remarks>
|
||||
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
|
||||
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
|
||||
<summary>
|
||||
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
|
||||
</summary>
|
||||
<remarks>
|
||||
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
|
||||
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
|
||||
<summary>
|
||||
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
|
||||
on other platforms) before returning from the attributed method.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.InteropServices.StringMarshalling">
|
||||
<summary>
|
||||
Specifies how strings should be marshalled for generated p/invokes
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
|
||||
<summary>
|
||||
Indicates the user is suppling a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
|
||||
<summary>
|
||||
Use the platform-provided UTF-8 marshaller.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
|
||||
<summary>
|
||||
Use the platform-provided UTF-16 marshaller.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
|
||||
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
|
||||
<typeparam name="T">The type of values to enumerate.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
|
||||
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
|
||||
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
|
||||
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
|
||||
</member>
|
||||
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
|
||||
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
|
||||
<typeparam name="T">The type of objects to enumerate.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
|
||||
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||
<returns>
|
||||
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
|
||||
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
|
||||
of the collection.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
|
||||
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||
</member>
|
||||
<member name="T:System.IAsyncDisposable">
|
||||
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
|
||||
</member>
|
||||
<member name="M:System.IAsyncDisposable.DisposeAsync">
|
||||
<summary>
|
||||
Performs application-defined tasks associated with freeing, releasing, or
|
||||
resetting unmanaged resources asynchronously.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
|
||||
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
|
||||
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
|
||||
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
|
||||
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
|
||||
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter may be null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
|
||||
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
|
||||
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
|
||||
<summary>Initializes the attribute with the associated parameter name.</summary>
|
||||
<param name="parameterName">
|
||||
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
|
||||
<summary>Gets the associated parameter name.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
|
||||
<summary>Applied to a method that will never return under any circumstance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
|
||||
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified parameter value.</summary>
|
||||
<param name="parameterValue">
|
||||
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
|
||||
the associated parameter matches this value.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
|
||||
<summary>Gets the condition parameter value.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
|
||||
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
|
||||
<summary>Initializes the attribute with a field or property member.</summary>
|
||||
<param name="member">
|
||||
The field or property member that is promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
|
||||
<summary>Initializes the attribute with the list of field and property members.</summary>
|
||||
<param name="members">
|
||||
The list of field and property members that are promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
|
||||
<summary>Gets field or property member names.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
|
||||
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
|
||||
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
<param name="member">
|
||||
The field or property member that is promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
|
||||
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
<param name="members">
|
||||
The list of field and property members that are promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
|
||||
<summary>Gets field or property member names.</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.pdb
Normal file
Binary file not shown.
2400
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.xml
Normal file
2400
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.dll
Normal file
Binary file not shown.
11363
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.xml
Normal file
11363
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.pdb
Normal file
Binary file not shown.
341
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.xml
Normal file
341
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.xml
Normal file
@ -0,0 +1,341 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Prism.DryIoc.Wpf</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Prism.DryIoc.PrismApplication">
|
||||
<summary>
|
||||
Base application class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerRules">
|
||||
<summary>
|
||||
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
|
||||
</summary>
|
||||
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerExtension">
|
||||
<summary>
|
||||
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismApplication.RegisterFrameworkExceptionTypes">
|
||||
<summary>
|
||||
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.DryIoc.PrismBootstrapper">
|
||||
<summary>
|
||||
Base bootstrapper class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerRules">
|
||||
<summary>
|
||||
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
|
||||
</summary>
|
||||
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerExtension">
|
||||
<summary>
|
||||
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismBootstrapper.RegisterFrameworkExceptionTypes">
|
||||
<summary>
|
||||
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.DryIoc.Properties.Resources">
|
||||
<summary>
|
||||
A strongly-typed resource class, for looking up localized strings, etc.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.ResourceManager">
|
||||
<summary>
|
||||
Returns the cached ResourceManager instance used by this class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.Culture">
|
||||
<summary>
|
||||
Overrides the current thread's CurrentUICulture property for all
|
||||
resource lookups using this strongly typed resource class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The method 'GetModuleEnumerator' of the bootstrapper must be overwritten in order to use the default module initialization logic..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerBuilderException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The ContainerBuilder is required and cannot be null..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The IContainer is required and cannot be null..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.NullLoggerFacadeException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.NullModuleCatalogException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.Properties.Resources.TypeMappingAlreadyRegistered">
|
||||
<summary>
|
||||
Looks up a localized string similar to Type '{0}' was already registered by the application. Skipping....
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.DryIoc.DryIocContainerExtension">
|
||||
<summary>
|
||||
The <see cref="T:Prism.Ioc.IContainerExtension" /> Implementation to use with DryIoc
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.DryIocContainerExtension.DefaultRules">
|
||||
<summary>
|
||||
Gets the Default DryIoc Container Rules used by Prism
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.DryIocContainerExtension.Instance">
|
||||
<summary>
|
||||
The instance of the wrapped container
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor">
|
||||
<summary>
|
||||
Constructs a default instance of the <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor(DryIoc.IContainer)">
|
||||
<summary>
|
||||
Constructs a new <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
|
||||
</summary>
|
||||
<param name="container">The <see cref="T:DryIoc.IContainer" /> instance to use.</param>
|
||||
</member>
|
||||
<member name="P:Prism.DryIoc.DryIocContainerExtension.CurrentScope">
|
||||
<summary>
|
||||
Gets the current scope
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.FinalizeExtension">
|
||||
<summary>
|
||||
Used to perform any final steps for configuring the extension that may be required by the container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object)">
|
||||
<summary>
|
||||
Registers an instance of a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
|
||||
<summary>
|
||||
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
|
||||
<summary>
|
||||
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
|
||||
<summary>
|
||||
Registers a Singleton Service which implements service interfaces
|
||||
</summary>
|
||||
<param name="type">The implementation <see cref="T:System.Type" />.</param>
|
||||
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a scoped service
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a scoped service using a delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a scoped service using a delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/>.</param>
|
||||
<param name="factoryMethod">The delegate method using the <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type,System.String)">
|
||||
<summary>
|
||||
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a Transient Service using a delegate method
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a Transient Service using a delegate method
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterMany(System.Type,System.Type[])">
|
||||
<summary>
|
||||
Registers a Transient Service which implements service interfaces
|
||||
</summary>
|
||||
<param name="type">The implementing <see cref="T:System.Type" />.</param>
|
||||
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type)">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String)">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type)">
|
||||
<summary>
|
||||
Determines if a given service is registered
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<returns><c>true</c> if the service is registered.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type,System.String)">
|
||||
<summary>
|
||||
Determines if a given service is registered with the specified name
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="name">The service name or key used</param>
|
||||
<returns><c>true</c> if the service is registered.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScope">
|
||||
<summary>
|
||||
Creates a new Scope
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScopeInternal">
|
||||
<summary>
|
||||
Creates a new Scope and provides the updated ServiceProvider
|
||||
</summary>
|
||||
<returns>The Scoped <see cref="T:DryIoc.IResolverContext" />.</returns>
|
||||
<remarks>
|
||||
This should be called by custom implementations that Implement IServiceScopeFactory
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Prism.DryIoc.PrismIocExtensions">
|
||||
<summary>
|
||||
Extensions help get the underlying <see cref="T:DryIoc.IContainer" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
|
||||
<summary>
|
||||
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||
</summary>
|
||||
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
|
||||
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
|
||||
</member>
|
||||
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
|
||||
<summary>
|
||||
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||
</summary>
|
||||
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
|
||||
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.pdb
Normal file
Binary file not shown.
324
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.xml
Normal file
324
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.xml
Normal file
@ -0,0 +1,324 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Prism.Unity.Wpf</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Prism.Unity.PrismApplication">
|
||||
<summary>
|
||||
Base application class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismApplication.CreateContainerExtension">
|
||||
<summary>
|
||||
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismApplication.RegisterFrameworkExceptionTypes">
|
||||
<summary>
|
||||
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.Unity.PrismBootstrapper">
|
||||
<summary>
|
||||
Base bootstrapper class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismBootstrapper.CreateContainerExtension">
|
||||
<summary>
|
||||
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismBootstrapper.RegisterFrameworkExceptionTypes">
|
||||
<summary>
|
||||
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.Unity.Properties.Resources">
|
||||
<summary>
|
||||
A strongly-typed resource class, for looking up localized strings, etc.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.ResourceManager">
|
||||
<summary>
|
||||
Returns the cached ResourceManager instance used by this class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.Culture">
|
||||
<summary>
|
||||
Overrides the current thread's CurrentUICulture property for all
|
||||
resource lookups using this strongly typed resource class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The method 'GetModuleEnumerator' of the bootstrapper must be overwritten in order to use the default module initialization logic..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.NullLoggerFacadeException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.NullModuleCatalogException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.NullUnityContainerException">
|
||||
<summary>
|
||||
Looks up a localized string similar to The IUnityContainer is required and cannot be null..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.SettingTheRegionManager">
|
||||
<summary>
|
||||
Looks up a localized string similar to Setting the RegionManager..
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.Properties.Resources.TypeMappingAlreadyRegistered">
|
||||
<summary>
|
||||
Looks up a localized string similar to Type '{0}' was already registered by the application. Skipping....
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Prism.Unity.PrismIocExtensions">
|
||||
<summary>
|
||||
Extensions help get the underlying <see cref="T:Unity.IUnityContainer" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
|
||||
<summary>
|
||||
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||
</summary>
|
||||
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
|
||||
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
|
||||
<summary>
|
||||
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||
</summary>
|
||||
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
|
||||
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
|
||||
</member>
|
||||
<member name="T:Prism.Unity.UnityContainerExtension">
|
||||
<summary>
|
||||
The Unity implementation of the <see cref="T:Prism.Ioc.IContainerExtension" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.UnityContainerExtension.Instance">
|
||||
<summary>
|
||||
The instance of the wrapped container
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.#ctor">
|
||||
<summary>
|
||||
Constructs a default <see cref="T:Prism.Unity.UnityContainerExtension" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.#ctor(Unity.IUnityContainer)">
|
||||
<summary>
|
||||
Constructs a <see cref="T:Prism.Unity.UnityContainerExtension" /> with the specified <see cref="T:Unity.IUnityContainer" />
|
||||
</summary>
|
||||
<param name="container"></param>
|
||||
</member>
|
||||
<member name="P:Prism.Unity.UnityContainerExtension.CurrentScope">
|
||||
<summary>
|
||||
Gets the current <see cref="T:Prism.Ioc.IScopedProvider"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.FinalizeExtension">
|
||||
<summary>
|
||||
Used to perform any final steps for configuring the extension that may be required by the container.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object)">
|
||||
<summary>
|
||||
Registers an instance of a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
|
||||
<summary>
|
||||
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
|
||||
<summary>
|
||||
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
|
||||
<summary>
|
||||
Registers a Singleton Service which implements service interfaces
|
||||
</summary>
|
||||
<param name="type">The implementation <see cref="T:System.Type" />.</param>
|
||||
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type,System.String)">
|
||||
<summary>
|
||||
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<param name="name">The name or key to register the service</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a Transient Service using a delegate method
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a Transient Service using a delegate method
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterMany(System.Type,System.Type[])">
|
||||
<summary>
|
||||
Registers a Transient Service which implements service interfaces
|
||||
</summary>
|
||||
<param name="type">The implementing <see cref="T:System.Type" />.</param>
|
||||
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Type)">
|
||||
<summary>
|
||||
Registers a scoped service
|
||||
</summary>
|
||||
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
|
||||
<summary>
|
||||
Registers a scoped service using a delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||
<summary>
|
||||
Registers a scoped service using a delegate method.
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/>.</param>
|
||||
<param name="factoryMethod">The delegate method.</param>
|
||||
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type)">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String)">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
|
||||
<summary>
|
||||
Resolves a given <see cref="T:System.Type"/>
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type)">
|
||||
<summary>
|
||||
Determines if a given service is registered
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<returns><c>true</c> if the service is registered.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type,System.String)">
|
||||
<summary>
|
||||
Determines if a given service is registered with the specified name
|
||||
</summary>
|
||||
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||
<param name="name">The service name or key used</param>
|
||||
<returns><c>true</c> if the service is registered.</returns>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.CreateScope">
|
||||
<summary>
|
||||
Creates a new Scope
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Prism.Unity.UnityContainerExtension.CreateScopeInternal">
|
||||
<summary>
|
||||
Creates a new Scope and provides the updated ServiceProvider
|
||||
</summary>
|
||||
<returns>A child <see cref="T:Unity.IUnityContainer" />.</returns>
|
||||
<remarks>
|
||||
This should be called by custom implementations that Implement IServiceScopeFactory
|
||||
</remarks>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.pdb
Normal file
Binary file not shown.
5209
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.xml
Normal file
5209
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.pdb
Normal file
Binary file not shown.
3445
newFront/c#前端/SWS.Commons/bin/Debug/Prism.xml
Normal file
3445
newFront/c#前端/SWS.Commons/bin/Debug/Prism.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll
Normal file
Binary file not shown.
31
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll.config
Normal file
31
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll.config
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.pdb
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.pdb
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||
<assembly>
|
||||
<name>System.Runtime.CompilerServices.Unsafe</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Runtime.CompilerServices.Unsafe">
|
||||
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
|
||||
<summary>Adds an element offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
|
||||
<summary>Adds an element offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
|
||||
<summary>Adds a byte offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="byteOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
|
||||
<summary>Determines whether the specified references point to the same location.</summary>
|
||||
<param name="left">The first reference to compare.</param>
|
||||
<param name="right">The second reference to compare.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
|
||||
<summary>Casts the given object to the specified type.</summary>
|
||||
<param name="o">The object to cast.</param>
|
||||
<typeparam name="T">The type which the object will be cast to.</typeparam>
|
||||
<returns>The original object, casted to the given type.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
|
||||
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
|
||||
<param name="source">The reference to reinterpret.</param>
|
||||
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
|
||||
<typeparam name="TTo">The desired type of the reference.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
|
||||
<summary>Returns a pointer to the given by-ref parameter.</summary>
|
||||
<param name="value">The object whose pointer is obtained.</param>
|
||||
<typeparam name="T">The type of object.</typeparam>
|
||||
<returns>A pointer to the given value.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
|
||||
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
|
||||
<param name="source">The location of the value to reference.</param>
|
||||
<typeparam name="T">The type of the interpreted location.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
|
||||
<summary>Determines the byte offset from origin to target from the given references.</summary>
|
||||
<param name="origin">The reference to origin.</param>
|
||||
<param name="target">The reference to target.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
|
||||
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||
<param name="destination">The location to copy to.</param>
|
||||
<param name="source">A reference to the value to copy.</param>
|
||||
<typeparam name="T">The type of value to copy.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
|
||||
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||
<param name="destination">The location to copy to.</param>
|
||||
<param name="source">A pointer to the value to copy.</param>
|
||||
<typeparam name="T">The type of value to copy.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value
|
||||
without assuming architecture dependent alignment of the address.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value
|
||||
without assuming architecture dependent alignment of the address.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
|
||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
|
||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
|
||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
|
||||
<summary>Returns the size of an object of the given type parameter.</summary>
|
||||
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
|
||||
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
|
||||
<summary>Subtracts an element offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
|
||||
<summary>Subtracts an element offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
|
||||
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="byteOffset"></param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
||||
without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
Binary file not shown.
@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||
<assembly>
|
||||
<name>System.Threading.Tasks.Extensions</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="T:System.Threading.Tasks.ValueTask`1">
|
||||
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
|
||||
<typeparam name="TResult">The result.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
|
||||
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
|
||||
<param name="task">The task.</param>
|
||||
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
|
||||
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
|
||||
<param name="result">The result.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
|
||||
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
|
||||
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
|
||||
<summary>Configures an awaiter for this value.</summary>
|
||||
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
|
||||
<returns>The configured awaiter.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
|
||||
<summary>Creates a method builder for use with an async method.</summary>
|
||||
<returns>The created builder.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
|
||||
<summary>Determines whether the specified object is equal to the current object.</summary>
|
||||
<param name="obj">The object to compare with the current object.</param>
|
||||
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
|
||||
<param name="other">The object to compare with the current object.</param>
|
||||
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
|
||||
<summary>Creates an awaiter for this value.</summary>
|
||||
<returns>The awaiter.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
|
||||
<summary>Returns the hash code for this instance.</summary>
|
||||
<returns>The hash code for the current object.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
|
||||
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
|
||||
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
|
||||
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
|
||||
<returns>true if this object represents a completed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
|
||||
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
|
||||
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
|
||||
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
|
||||
<returns>true if this object represents a failed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Compares two values for equality.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The second value to compare.</param>
|
||||
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The seconed value to compare.</param>
|
||||
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
|
||||
<summary>Gets the result.</summary>
|
||||
<returns>The result.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
|
||||
<summary>Returns a string that represents the current object.</summary>
|
||||
<returns>A string that represents the current object.</returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
|
||||
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
|
||||
<param name="builderType"></param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
|
||||
<param name="awaiter"></param>
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TAwaiter"></typeparam>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||
<param name="awaiter"></param>
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TAwaiter"></typeparam>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
|
||||
<param name="exception"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
|
||||
<param name="result"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
|
||||
<param name="stateMachine"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/System.ValueTuple.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/System.ValueTuple.dll
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.ValueTuple</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.dll
Normal file
Binary file not shown.
64656
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.xml
Normal file
64656
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.pdb
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.pdb
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
93
newFront/c#前端/SWS.Commons/bin/Debug/log4net.config
Normal file
93
newFront/c#前端/SWS.Commons/bin/Debug/log4net.config
Normal file
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<log4net >
|
||||
<root>
|
||||
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
|
||||
<level value="ALL"/>
|
||||
<appender-ref ref="ErrorRollingFileAppender"/>
|
||||
<appender-ref ref="WarnRollingFileAppender"/>
|
||||
<appender-ref ref="InfoRollingFileAppender"/>
|
||||
<appender-ref ref="DebugRollingFileAppender"/>
|
||||
</root>
|
||||
|
||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<levelMin value="ERROR"/>
|
||||
<levelMax value="FATAL"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Error.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="WARN"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Warn.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--信息日志定义,用于记录用户相关信息-->
|
||||
<!--日志输出格式:[时间]:消息-->
|
||||
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="INFO"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Info.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss}] (%c) %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--信息日志定义,用于收集开发调试信息-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="DEBUG"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
</log4net>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.pdb
Normal file
Binary file not shown.
28302
newFront/c#前端/SWS.Commons/bin/Debug/log4net.xml
Normal file
28302
newFront/c#前端/SWS.Commons/bin/Debug/log4net.xml
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
93
newFront/c#前端/SWS.Commons/log4net.config
Normal file
93
newFront/c#前端/SWS.Commons/log4net.config
Normal file
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<log4net >
|
||||
<root>
|
||||
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
|
||||
<level value="ALL"/>
|
||||
<appender-ref ref="ErrorRollingFileAppender"/>
|
||||
<appender-ref ref="WarnRollingFileAppender"/>
|
||||
<appender-ref ref="InfoRollingFileAppender"/>
|
||||
<appender-ref ref="DebugRollingFileAppender"/>
|
||||
</root>
|
||||
|
||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelRangeFilter">
|
||||
<levelMin value="ERROR"/>
|
||||
<levelMax value="FATAL"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Error.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="WARN"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Warn.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--信息日志定义,用于记录用户相关信息-->
|
||||
<!--日志输出格式:[时间]:消息-->
|
||||
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="INFO"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Info.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss}] (%c) %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--信息日志定义,用于收集开发调试信息-->
|
||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<filter type="log4net.Filter.LevelMatchFilter">
|
||||
<levelToMatch value="DEBUG"/>
|
||||
</filter>
|
||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||
<file value="Logs/"/>
|
||||
<appendToFile value="true"/>
|
||||
<maxSizeRollBackups value="100" />
|
||||
<maxFileSize value="10240" />
|
||||
<rollingStyle value="Date"/>
|
||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||
<staticLogFileName value="false"/>
|
||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
</log4net>
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
42c43b4a66e8d45e078c86c61aaca78db4ff6f419ade1145e731c58127ec54f4
|
@ -0,0 +1,57 @@
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.config
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.dll.config
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\DryIoc.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\INIFileParser.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Newtonsoft.Json.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Model.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Threading.Tasks.Extensions.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.ValueTuple.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Telerik.Windows.Controls.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Abstractions.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Container.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Model.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\DryIoc.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\INIFileParser.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Newtonsoft.Json.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Threading.Tasks.Extensions.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.ValueTuple.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Telerik.Windows.Controls.xml
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Abstractions.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Container.pdb
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\de\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\es\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\fr\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\it\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\nl\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\tr\Telerik.Windows.Controls.resources.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.csproj.AssemblyReference.cache
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.csproj.CoreCompileInputs.cache
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Comm.9AB1BE43.Up2Date
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.dll
|
||||
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.pdb
|
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.pdb
Normal file
Binary file not shown.
17
newFront/c#前端/SWS.Commons/packages.config
Normal file
17
newFront/c#前端/SWS.Commons/packages.config
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="DryIoc.dll" version="4.7.7" targetFramework="net48" />
|
||||
<package id="log4net" version="3.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.1" targetFramework="net48" />
|
||||
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.122" targetFramework="net48" />
|
||||
<package id="Prism.Core" version="8.1.97" targetFramework="net48" />
|
||||
<package id="Prism.DryIoc" version="8.1.97" targetFramework="net48" />
|
||||
<package id="Prism.Unity" version="8.1.97" targetFramework="net48" />
|
||||
<package id="Prism.Wpf" version="8.1.97" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
|
||||
<package id="Unity.Abstractions" version="5.11.7" targetFramework="net48" />
|
||||
<package id="Unity.Container" version="5.11.11" targetFramework="net48" />
|
||||
</packages>
|
File diff suppressed because one or more lines are too long
79
newFront/c#前端/SWS.CustomControl/IconButton/IconButton.cs
Normal file
79
newFront/c#前端/SWS.CustomControl/IconButton/IconButton.cs
Normal file
@ -0,0 +1,79 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
[TemplatePart(Name = "PART_Icon", Type = typeof(Path))]
|
||||
[TemplatePart(Name = "PART_Content", Type = typeof(ContentPresenter))]
|
||||
public class IconButton : Button
|
||||
{
|
||||
static IconButton()
|
||||
{
|
||||
DefaultStyleKeyProperty.OverrideMetadata(
|
||||
typeof(IconButton),
|
||||
new FrameworkPropertyMetadata(typeof(IconButton)));
|
||||
}
|
||||
|
||||
#region 依赖属性
|
||||
// 矢量路径数据
|
||||
public static readonly DependencyProperty IconDataProperty =
|
||||
DependencyProperty.Register(
|
||||
"IconData",
|
||||
typeof(Geometry),
|
||||
typeof(IconButton),
|
||||
new FrameworkPropertyMetadata(null));
|
||||
|
||||
// 图标尺寸
|
||||
public static readonly DependencyProperty IconSizeProperty =
|
||||
DependencyProperty.Register(
|
||||
"IconSize",
|
||||
typeof(double),
|
||||
typeof(IconButton),
|
||||
new FrameworkPropertyMetadata(16.0));
|
||||
|
||||
// 图标位置
|
||||
public static readonly DependencyProperty IconPlacementProperty =
|
||||
DependencyProperty.Register(
|
||||
"IconPlacement",
|
||||
typeof(Dock),
|
||||
typeof(IconButton),
|
||||
new FrameworkPropertyMetadata(Dock.Left));
|
||||
|
||||
// 图标与文字间距
|
||||
public static readonly DependencyProperty IconMarginProperty =
|
||||
DependencyProperty.Register(
|
||||
"IconMargin",
|
||||
typeof(Thickness),
|
||||
typeof(IconButton),
|
||||
new FrameworkPropertyMetadata(new Thickness(0, 0, 5, 0)));
|
||||
#endregion
|
||||
|
||||
#region 属性包装器
|
||||
public Geometry IconData
|
||||
{
|
||||
get => (Geometry)GetValue(IconDataProperty);
|
||||
set => SetValue(IconDataProperty, value);
|
||||
}
|
||||
|
||||
public double IconSize
|
||||
{
|
||||
get => (double)GetValue(IconSizeProperty);
|
||||
set => SetValue(IconSizeProperty, value);
|
||||
}
|
||||
|
||||
public Dock IconPlacement
|
||||
{
|
||||
get => (Dock)GetValue(IconPlacementProperty);
|
||||
set => SetValue(IconPlacementProperty, value);
|
||||
}
|
||||
|
||||
public Thickness IconMargin
|
||||
{
|
||||
get => (Thickness)GetValue(IconMarginProperty);
|
||||
set => SetValue(IconMarginProperty, value);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class CollectionToStringConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
ObservableCollection<ec_dataitemdetail> WHCPUs = value as ObservableCollection<ec_dataitemdetail>;
|
||||
if (WHCPUs != null)
|
||||
{
|
||||
string sWHCPU = "";
|
||||
for (int i = 0; i < WHCPUs.Count; i++)
|
||||
{
|
||||
if (i!= WHCPUs.Count-1)
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode + "|";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return sWHCPU;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
|
||||
public static class DoubleUtil
|
||||
{
|
||||
internal const double DBL_EPSILON = 2.2204460492503131e-016; /* smallest such that 1.0+DBL_EPSILON != 1.0 */
|
||||
internal const float FLT_MIN = 1.175494351e-38F; /* Number close to zero, where float.MinValue is -float.MaxValue */
|
||||
|
||||
|
||||
public static bool IsZero(double value) => Math.Abs(value) < 10.0 * DBL_EPSILON;
|
||||
|
||||
public static bool AreClose(double value1, double value2)
|
||||
{
|
||||
if (value1 == value2) return true;
|
||||
double eps = (Math.Abs(value1) + Math.Abs(value2) + 10.0) * DBL_EPSILON;
|
||||
double delta = value1 - value2;
|
||||
return (-eps < delta) && (eps > delta);
|
||||
}
|
||||
|
||||
public static bool LessThan(double value1, double value2) => (value1 < value2) && !AreClose(value1, value2);
|
||||
|
||||
public static bool GreaterThan(double value1, double value2) => (value1 > value2) && !AreClose(value1, value2);
|
||||
|
||||
public static bool LessThanOrClose(double value1, double value2) => (value1 < value2) || AreClose(value1, value2);
|
||||
|
||||
public static bool GreaterThanOrClose(double value1, double value2) => (value1 > value2) || AreClose(value1, value2);
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct NanUnion
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
internal double DoubleValue;
|
||||
[FieldOffset(0)]
|
||||
internal UInt64 UintValue;
|
||||
}
|
||||
|
||||
public static bool IsNaN(double value)
|
||||
{
|
||||
NanUnion t = new NanUnion();
|
||||
t.DoubleValue = value;
|
||||
|
||||
UInt64 exp = t.UintValue & 0xfff0000000000000;
|
||||
UInt64 man = t.UintValue & 0x000fffffffffffff;
|
||||
|
||||
return (exp == 0x7ff0000000000000 || exp == 0xfff0000000000000) && (man != 0);
|
||||
}
|
||||
|
||||
public static bool IsOne(double value)
|
||||
{
|
||||
return Math.Abs(value - 1.0) < 10.0 * DBL_EPSILON;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class ElementHelper : DependencyObject
|
||||
{
|
||||
public static readonly DependencyProperty CornerRadiusProperty =
|
||||
DependencyProperty.RegisterAttached("CornerRadius", typeof(CornerRadius), typeof(ElementHelper),
|
||||
new PropertyMetadata(new CornerRadius(0)));
|
||||
|
||||
public static readonly DependencyProperty WatermarkProperty =
|
||||
DependencyProperty.RegisterAttached("Watermark", typeof(string), typeof(ElementHelper),
|
||||
new PropertyMetadata(string.Empty));
|
||||
|
||||
public static readonly DependencyProperty IsStripeProperty =
|
||||
DependencyProperty.RegisterAttached("IsStripe", typeof(bool), typeof(ElementHelper),
|
||||
new PropertyMetadata(false));
|
||||
|
||||
public static readonly DependencyProperty IsRoundProperty =
|
||||
DependencyProperty.RegisterAttached("IsRound", typeof(bool), typeof(ElementHelper),
|
||||
new PropertyMetadata(false));
|
||||
|
||||
public static readonly DependencyProperty IsClearProperty =
|
||||
DependencyProperty.RegisterAttached("IsClear", typeof(bool), typeof(ElementHelper),
|
||||
new PropertyMetadata(false, OnIsClearChanged));
|
||||
|
||||
public static CornerRadius GetCornerRadius(DependencyObject obj)
|
||||
{
|
||||
return (CornerRadius)obj.GetValue(CornerRadiusProperty);
|
||||
}
|
||||
|
||||
public static void SetCornerRadius(DependencyObject obj, CornerRadius value)
|
||||
{
|
||||
obj.SetValue(CornerRadiusProperty, value);
|
||||
}
|
||||
|
||||
public static string GetWatermark(DependencyObject obj)
|
||||
{
|
||||
return (string)obj.GetValue(WatermarkProperty);
|
||||
}
|
||||
|
||||
public static void SetWatermark(DependencyObject obj, string value)
|
||||
{
|
||||
obj.SetValue(WatermarkProperty, value);
|
||||
}
|
||||
|
||||
public static bool GetIsStripe(DependencyObject obj)
|
||||
{
|
||||
return (bool)obj.GetValue(IsStripeProperty);
|
||||
}
|
||||
|
||||
public static void SetIsStripe(DependencyObject obj, bool value)
|
||||
{
|
||||
obj.SetValue(IsStripeProperty, value);
|
||||
}
|
||||
|
||||
public static bool GetIsRound(DependencyObject obj)
|
||||
{
|
||||
return (bool)obj.GetValue(IsRoundProperty);
|
||||
}
|
||||
|
||||
public static void SetIsRound(DependencyObject obj, bool value)
|
||||
{
|
||||
obj.SetValue(IsRoundProperty, value);
|
||||
}
|
||||
|
||||
public static void SetIsClear(UIElement element, bool value)
|
||||
{
|
||||
element.SetValue(IsClearProperty, value);
|
||||
}
|
||||
|
||||
public static bool GetIsClear(UIElement element)
|
||||
{
|
||||
return (bool)element.GetValue(IsClearProperty);
|
||||
}
|
||||
|
||||
private static void OnIsClearChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var button = d as Button;
|
||||
if (button != null)
|
||||
{
|
||||
if ((bool)e.NewValue)
|
||||
button.Click += ButtonClear_Click;
|
||||
else
|
||||
button.Click -= ButtonClear_Click;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ButtonClear_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (sender is Button button)
|
||||
{
|
||||
if (button.TemplatedParent is TextBox textBox)
|
||||
textBox.Clear();
|
||||
else if (button.TemplatedParent is PasswordBox passwordBox)
|
||||
passwordBox.Clear();
|
||||
else if (button.TemplatedParent is TabItem tabItem)
|
||||
{
|
||||
var tabControl = tabItem.Parent as TabControl;
|
||||
if (tabControl != null)
|
||||
tabControl.Items.Remove(tabItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
using System;
|
||||
using System.Windows.Media;
|
||||
using System.Windows;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
internal class GeometryHelper
|
||||
{
|
||||
public static void GenerateGeometry(StreamGeometryContext ctx, Rect rect, Radii radii)
|
||||
{
|
||||
var point = new Point(radii.LeftTop, 0.0);
|
||||
var point2 = new Point(rect.Width - radii.RightTop, 0.0);
|
||||
var point3 = new Point(rect.Width, radii.TopRight);
|
||||
var point4 = new Point(rect.Width, rect.Height - radii.BottomRight);
|
||||
var point5 = new Point(rect.Width - radii.RightBottom, rect.Height);
|
||||
var point6 = new Point(radii.LeftBottom, rect.Height);
|
||||
var point7 = new Point(0.0, rect.Height - radii.BottomLeft);
|
||||
var point8 = new Point(0.0, radii.TopLeft);
|
||||
if (point.X > point2.X)
|
||||
{
|
||||
var x = radii.LeftTop / (radii.LeftTop + radii.RightTop) * rect.Width;
|
||||
point.X = x;
|
||||
point2.X = x;
|
||||
}
|
||||
if (point3.Y > point4.Y)
|
||||
{
|
||||
var y = radii.TopRight / (radii.TopRight + radii.BottomRight) * rect.Height;
|
||||
point3.Y = y;
|
||||
point4.Y = y;
|
||||
}
|
||||
if (point5.X < point6.X)
|
||||
{
|
||||
var x2 = radii.LeftBottom / (radii.LeftBottom + radii.RightBottom) * rect.Width;
|
||||
point5.X = x2;
|
||||
point6.X = x2;
|
||||
}
|
||||
if (point7.Y < point8.Y)
|
||||
{
|
||||
var y2 = radii.TopLeft / (radii.TopLeft + radii.BottomLeft) * rect.Height;
|
||||
point7.Y = y2;
|
||||
point8.Y = y2;
|
||||
}
|
||||
var vector = new Vector(rect.TopLeft.X, rect.TopLeft.Y);
|
||||
point += vector;
|
||||
point2 += vector;
|
||||
point3 += vector;
|
||||
point4 += vector;
|
||||
point5 += vector;
|
||||
point6 += vector;
|
||||
point7 += vector;
|
||||
point8 += vector;
|
||||
ctx.BeginFigure(point, true, true);
|
||||
ctx.LineTo(point2, true, false);
|
||||
var width = rect.TopRight.X - point2.X;
|
||||
var height = point3.Y - rect.TopRight.Y;
|
||||
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||
{
|
||||
ctx.ArcTo(point3, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||
}
|
||||
ctx.LineTo(point4, true, false);
|
||||
width = rect.BottomRight.X - point5.X;
|
||||
height = rect.BottomRight.Y - point4.Y;
|
||||
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||
{
|
||||
ctx.ArcTo(point5, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||
}
|
||||
ctx.LineTo(point6, true, false);
|
||||
width = point6.X - rect.BottomLeft.X;
|
||||
height = rect.BottomLeft.Y - point7.Y;
|
||||
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||
{
|
||||
ctx.ArcTo(point7, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||
}
|
||||
ctx.LineTo(point8, true, false);
|
||||
width = point.X - rect.TopLeft.X;
|
||||
height = point8.Y - rect.TopLeft.Y;
|
||||
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||
{
|
||||
ctx.ArcTo(point, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||
}
|
||||
}
|
||||
public struct Radii
|
||||
{
|
||||
internal Radii(CornerRadius radii, Thickness borders, bool outer)
|
||||
{
|
||||
var left = 0.5 * borders.Left;
|
||||
var top = 0.5 * borders.Top;
|
||||
var right = 0.5 * borders.Right;
|
||||
var bottom = 0.5 * borders.Bottom;
|
||||
if (!outer)
|
||||
{
|
||||
LeftTop = Math.Max(0.0, radii.TopLeft - left);
|
||||
TopLeft = Math.Max(0.0, radii.TopLeft - top);
|
||||
TopRight = Math.Max(0.0, radii.TopRight - top);
|
||||
RightTop = Math.Max(0.0, radii.TopRight - right);
|
||||
RightBottom = Math.Max(0.0, radii.BottomRight - right);
|
||||
BottomRight = Math.Max(0.0, radii.BottomRight - bottom);
|
||||
BottomLeft = Math.Max(0.0, radii.BottomLeft - bottom);
|
||||
LeftBottom = Math.Max(0.0, radii.BottomLeft - left);
|
||||
return;
|
||||
}
|
||||
if (DoubleUtil.IsZero(radii.TopLeft))
|
||||
{
|
||||
LeftTop = (TopLeft = 0.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
LeftTop = radii.TopLeft + left;
|
||||
TopLeft = radii.TopLeft + top;
|
||||
}
|
||||
if (DoubleUtil.IsZero(radii.TopRight))
|
||||
{
|
||||
TopRight = (RightTop = 0.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
TopRight = radii.TopRight + top;
|
||||
RightTop = radii.TopRight + right;
|
||||
}
|
||||
if (DoubleUtil.IsZero(radii.BottomRight))
|
||||
{
|
||||
RightBottom = (BottomRight = 0.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
RightBottom = radii.BottomRight + right;
|
||||
BottomRight = radii.BottomRight + bottom;
|
||||
}
|
||||
if (DoubleUtil.IsZero(radii.BottomLeft))
|
||||
{
|
||||
BottomLeft = (LeftBottom = 0.0);
|
||||
return;
|
||||
}
|
||||
BottomLeft = radii.BottomLeft + bottom;
|
||||
LeftBottom = radii.BottomLeft + left;
|
||||
}
|
||||
|
||||
internal double LeftTop;
|
||||
|
||||
internal double TopLeft;
|
||||
|
||||
internal double TopRight;
|
||||
|
||||
internal double RightTop;
|
||||
|
||||
internal double RightBottom;
|
||||
|
||||
internal double BottomRight;
|
||||
|
||||
internal double BottomLeft;
|
||||
|
||||
internal double LeftBottom;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class MultiSelectComboBoxItem : ListBoxItem
|
||||
{
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class MultiSelectListBox:ListBox
|
||||
{
|
||||
protected override bool IsItemItsOwnContainerOverride(object item)
|
||||
{
|
||||
return item is MultiSelectComboBoxItem;
|
||||
}
|
||||
|
||||
protected override DependencyObject GetContainerForItemOverride()
|
||||
{
|
||||
return new MultiSelectComboBoxItem();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,630 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
[TemplatePart(Name = "PART_TextBox", Type = typeof(TextBox))]
|
||||
[TemplatePart(Name = "PART_Popup", Type = typeof(Popup))]
|
||||
[TemplatePart(Name = "PART_Selector", Type = typeof(ListBox))]
|
||||
[TemplatePart(Name = "PART_SelectAll", Type = typeof(CheckBox))]
|
||||
[TemplatePart(Name = "PART_SearchSelector", Type = typeof(ListBox))]
|
||||
public class MultiSelectSearchComboBox : Control
|
||||
{
|
||||
private const string TextBoxTemplateName = "PART_TextBox";
|
||||
private const string PopupTemplateName = "PART_Popup";
|
||||
private const string ListBoxTemplateName = "PART_Selector";
|
||||
private const string CheckBoxTemplateName = "PART_SelectAll";
|
||||
private const string ListBoxTemplateNameSearch = "PART_SearchSelector";
|
||||
|
||||
public static readonly RoutedEvent ClosedEvent =
|
||||
EventManager.RegisterRoutedEvent("Closed",
|
||||
RoutingStrategy.Bubble,
|
||||
typeof(RoutedEventHandler),
|
||||
typeof(MultiSelectSearchComboBox));
|
||||
|
||||
public static readonly DependencyProperty DisplayMemberPathProperty =
|
||||
DependencyProperty.Register("DisplayMemberPath",
|
||||
typeof(string),
|
||||
typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(string.Empty));
|
||||
|
||||
public static readonly DependencyProperty SelectedValuePathProperty =
|
||||
DependencyProperty.Register("SelectedValuePath",
|
||||
typeof(string),
|
||||
typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(string.Empty));
|
||||
|
||||
public static readonly DependencyProperty TextProperty =
|
||||
DependencyProperty.Register("Text",
|
||||
typeof(string),
|
||||
typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(string.Empty));
|
||||
|
||||
public static readonly DependencyProperty ItemsSourceProperty =
|
||||
DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata());
|
||||
|
||||
public static readonly DependencyProperty ItemsSourceSearchProperty =
|
||||
DependencyProperty.Register("ItemsSourceSearch", typeof(IEnumerable), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata());
|
||||
|
||||
public static readonly DependencyProperty SelectAllContentProperty =
|
||||
DependencyProperty.Register("SelectAllContent", typeof(object), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata("全选"));
|
||||
|
||||
public static readonly DependencyProperty IsSelectAllActiveProperty =
|
||||
DependencyProperty.Register("IsSelectAllActive", typeof(bool), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(false));
|
||||
|
||||
public static readonly DependencyProperty DelimiterProperty =
|
||||
DependencyProperty.Register("Delimiter", typeof(string), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(";"));
|
||||
|
||||
public static readonly DependencyProperty IsDropDownOpenProperty =
|
||||
DependencyProperty.Register("IsDropDownOpen", typeof(bool), typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(false, OnIsDropDownOpenChanged));
|
||||
|
||||
public static readonly DependencyProperty MaxDropDownHeightProperty =
|
||||
DependencyProperty.Register("MaxDropDownHeight", typeof(double), typeof(MultiSelectSearchComboBox),
|
||||
new UIPropertyMetadata(SystemParameters.PrimaryScreenHeight / 3.0, OnMaxDropDownHeightChanged));
|
||||
|
||||
public static readonly DependencyProperty SelectedItemsProperty =
|
||||
DependencyProperty.Register("SelectedItems", typeof(IList), typeof(MultiSelectSearchComboBox),
|
||||
new FrameworkPropertyMetadata(new ArrayList(),
|
||||
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
|
||||
OnSelectedItemsChanged));
|
||||
|
||||
public static readonly DependencyProperty SearchWatermarkProperty =
|
||||
DependencyProperty.Register("SearchWatermark",
|
||||
typeof(string),
|
||||
typeof(MultiSelectSearchComboBox),
|
||||
new PropertyMetadata(string.Empty));
|
||||
|
||||
private CheckBox _checkBox;
|
||||
private ListBox _listBox;
|
||||
private ListBox _listBoxSearch;
|
||||
private Popup _popup;
|
||||
private TextBox _textBox;
|
||||
private List<object> selectedItems;
|
||||
|
||||
private List<object> selectedList;
|
||||
private List<object> selectedSearchList;
|
||||
|
||||
private bool _isTemplateApplied = false;
|
||||
private IList _pendingSelectedItems;
|
||||
|
||||
private string theLastText;
|
||||
|
||||
static MultiSelectSearchComboBox()
|
||||
{
|
||||
DefaultStyleKeyProperty.OverrideMetadata(typeof(MultiSelectSearchComboBox),
|
||||
new FrameworkPropertyMetadata(typeof(MultiSelectSearchComboBox)));
|
||||
}
|
||||
|
||||
public string Delimiter
|
||||
{
|
||||
get => (string)GetValue(DelimiterProperty);
|
||||
set => SetValue(DelimiterProperty, value);
|
||||
}
|
||||
|
||||
public string SelectedValuePath
|
||||
{
|
||||
get => (string)GetValue(SelectedValuePathProperty);
|
||||
set => SetValue(SelectedValuePathProperty, value);
|
||||
}
|
||||
|
||||
public string DisplayMemberPath
|
||||
{
|
||||
get => (string)GetValue(DisplayMemberPathProperty);
|
||||
set => SetValue(DisplayMemberPathProperty, value);
|
||||
}
|
||||
|
||||
public string Text
|
||||
{
|
||||
get => (string)GetValue(TextProperty);
|
||||
set => SetValue(TextProperty, value);
|
||||
}
|
||||
|
||||
public IEnumerable ItemsSource
|
||||
{
|
||||
get => (IEnumerable)GetValue(ItemsSourceProperty);
|
||||
set => SetValue(ItemsSourceProperty, value);
|
||||
}
|
||||
|
||||
public IEnumerable ItemsSourceSearch
|
||||
{
|
||||
get => (IEnumerable)GetValue(ItemsSourceSearchProperty);
|
||||
set => SetValue(ItemsSourceSearchProperty, value);
|
||||
}
|
||||
|
||||
public object SelectAllContent
|
||||
{
|
||||
get => GetValue(SelectAllContentProperty);
|
||||
set => SetValue(SelectAllContentProperty, value);
|
||||
}
|
||||
|
||||
public bool IsSelectAllActive
|
||||
{
|
||||
get => (bool)GetValue(IsSelectAllActiveProperty);
|
||||
set => SetValue(IsSelectAllActiveProperty, value);
|
||||
}
|
||||
|
||||
public bool IsDropDownOpen
|
||||
{
|
||||
get => (bool)GetValue(IsDropDownOpenProperty);
|
||||
set => SetValue(IsDropDownOpenProperty, value);
|
||||
}
|
||||
|
||||
public double MaxDropDownHeight
|
||||
{
|
||||
get => (double)GetValue(MaxDropDownHeightProperty);
|
||||
set => SetValue(MaxDropDownHeightProperty, value);
|
||||
}
|
||||
|
||||
public IList SelectedItems
|
||||
{
|
||||
get => (IList)GetValue(SelectedItemsProperty);
|
||||
set => SetValue(SelectedItemsProperty, value);
|
||||
}
|
||||
|
||||
public string SearchWatermark
|
||||
{
|
||||
get => (string)GetValue(SearchWatermarkProperty);
|
||||
set => SetValue(SearchWatermarkProperty, value);
|
||||
}
|
||||
|
||||
[DllImport(Win32.User32)]
|
||||
private static extern IntPtr SetFocus(IntPtr hWnd);
|
||||
|
||||
public event RoutedEventHandler Closed
|
||||
{
|
||||
add => AddHandler(ClosedEvent, value);
|
||||
remove => RemoveHandler(ClosedEvent, value);
|
||||
}
|
||||
|
||||
|
||||
public override void OnApplyTemplate()
|
||||
{
|
||||
base.OnApplyTemplate();
|
||||
|
||||
selectedList = new List<object>();
|
||||
selectedSearchList = new List<object>();
|
||||
selectedItems = new List<object>();
|
||||
_textBox = GetTemplateChild(TextBoxTemplateName) as TextBox;
|
||||
_popup = GetTemplateChild(PopupTemplateName) as Popup;
|
||||
if (_popup != null)
|
||||
_popup.GotFocus += OnPopup_GotFocus;
|
||||
_listBox = GetTemplateChild(ListBoxTemplateName) as ListBox;
|
||||
|
||||
_checkBox = GetTemplateChild(CheckBoxTemplateName) as CheckBox;
|
||||
_listBoxSearch = GetTemplateChild(ListBoxTemplateNameSearch) as ListBox;
|
||||
if (_textBox != null)
|
||||
{
|
||||
_textBox.TextChanged -= OnTextbox_TextChanged;
|
||||
_textBox.TextChanged += OnTextbox_TextChanged;
|
||||
}
|
||||
|
||||
if (_checkBox != null)
|
||||
{
|
||||
_checkBox.Checked -= OnCheckBox_Checked;
|
||||
_checkBox.Unchecked -= OnCheckBox_Unchecked;
|
||||
_checkBox.Checked += OnCheckBox_Checked;
|
||||
_checkBox.Unchecked += OnCheckBox_Unchecked;
|
||||
}
|
||||
|
||||
if (_listBox != null)
|
||||
{
|
||||
_listBox.IsVisibleChanged -= OnListBox_IsVisibleChanged;
|
||||
_listBox.IsVisibleChanged += OnListBox_IsVisibleChanged;
|
||||
_listBox.SelectionChanged -= OnListBox_SelectionChanged;
|
||||
_listBox.SelectionChanged += OnListBox_SelectionChanged;
|
||||
}
|
||||
|
||||
if (_listBoxSearch != null)
|
||||
{
|
||||
_listBoxSearch.IsVisibleChanged -= OnListBoxSearch_IsVisibleChanged;
|
||||
_listBoxSearch.IsVisibleChanged += OnListBoxSearch_IsVisibleChanged;
|
||||
_listBoxSearch.SelectionChanged -= OnListBoxSearch_SelectionChanged;
|
||||
_listBoxSearch.SelectionChanged += OnListBoxSearch_SelectionChanged;
|
||||
}
|
||||
|
||||
// 标记模板已应用
|
||||
_isTemplateApplied = true;
|
||||
|
||||
// 处理之前暂存的 SelectedItems
|
||||
if (_pendingSelectedItems != null)
|
||||
{
|
||||
HandleSelectedItemsChanged(_pendingSelectedItems);
|
||||
_pendingSelectedItems = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnListBoxSearch_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
if ((bool)e.NewValue)
|
||||
UpdateIsChecked(_listBoxSearch);
|
||||
}
|
||||
|
||||
private void OnListBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
if ((bool)e.NewValue)
|
||||
{
|
||||
foreach (var item in selectedSearchList)
|
||||
if (!_listBox.SelectedItems.Contains(item))
|
||||
_listBox.SelectedItems.Add(item);
|
||||
UpdateIsChecked(_listBox);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateIsChecked(ListBox listBox)
|
||||
{
|
||||
_checkBox.Checked -= OnCheckBox_Checked;
|
||||
if (listBox.Items.Count > 0 && listBox.Items.Count == listBox.SelectedItems.Count)
|
||||
{
|
||||
if (_checkBox.IsChecked != true)
|
||||
_checkBox.IsChecked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (listBox.SelectedItems.Count == 0)
|
||||
_checkBox.IsChecked = false;
|
||||
else
|
||||
_checkBox.IsChecked = null;
|
||||
}
|
||||
|
||||
_checkBox.Checked += OnCheckBox_Checked;
|
||||
}
|
||||
|
||||
private void OnPopup_GotFocus(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var source = (HwndSource)PresentationSource.FromVisual(_popup.Child);
|
||||
if (source != null)
|
||||
{
|
||||
SetFocus(source.Handle);
|
||||
_textBox.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCheckBox_Unchecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_listBoxSearch.Visibility == Visibility.Visible)
|
||||
_listBoxSearch.UnselectAll();
|
||||
else
|
||||
_listBox.UnselectAll();
|
||||
}
|
||||
|
||||
private void OnCheckBox_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_listBoxSearch.Visibility == Visibility.Visible)
|
||||
_listBoxSearch.SelectAll();
|
||||
else
|
||||
_listBox.SelectAll();
|
||||
}
|
||||
|
||||
private void Combination()
|
||||
{
|
||||
var seletedName = new List<string>();
|
||||
foreach (var item in _listBox.SelectedItems)
|
||||
{
|
||||
var name = GetDisplayText(item);
|
||||
if (!string.IsNullOrWhiteSpace(name))
|
||||
seletedName.Add(name);
|
||||
else
|
||||
seletedName.Add(item.ToString());
|
||||
}
|
||||
|
||||
foreach (var item in _listBoxSearch.SelectedItems)
|
||||
{
|
||||
if (_listBox.SelectedItems.Contains(item))
|
||||
continue;
|
||||
var name = GetDisplayText(item);
|
||||
if (!string.IsNullOrWhiteSpace(name))
|
||||
seletedName.Add(name);
|
||||
else
|
||||
seletedName.Add(item.ToString());
|
||||
}
|
||||
|
||||
Text = string.Join(Delimiter, seletedName.ToArray());
|
||||
}
|
||||
|
||||
private void OnListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (e.RemovedItems.Count > 0)
|
||||
{
|
||||
foreach (var item in e.RemovedItems)
|
||||
{
|
||||
if (_checkBox.IsChecked == true)
|
||||
{
|
||||
_checkBox.Unchecked -= OnCheckBox_Unchecked;
|
||||
if (_listBox.Items.Count == 1)
|
||||
_checkBox.IsChecked = false;
|
||||
else
|
||||
_checkBox.IsChecked = null;
|
||||
_checkBox.Unchecked += OnCheckBox_Unchecked;
|
||||
}
|
||||
|
||||
if (_listBoxSearch.SelectedItems.Contains(item))
|
||||
_listBoxSearch.SelectedItems.Remove(item);
|
||||
if (selectedSearchList.Contains(item))
|
||||
selectedSearchList.Remove(item);
|
||||
}
|
||||
|
||||
SelectionChecked(_listBox);
|
||||
}
|
||||
|
||||
|
||||
if (e.AddedItems.Count > 0)
|
||||
SelectionChecked(_listBox);
|
||||
Combination();
|
||||
var selectedItems = _listBox.SelectedItems;
|
||||
if (SelectedItems == null)
|
||||
SelectedItems = selectedItems;
|
||||
else
|
||||
{
|
||||
foreach (var item in selectedItems)
|
||||
{
|
||||
if (!SelectedItems.Contains(item))
|
||||
SelectedItems.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnListBoxSearch_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (!_listBoxSearch.IsVisible)
|
||||
return;
|
||||
if (e.RemovedItems.Count > 0)
|
||||
{
|
||||
foreach (var item in e.RemovedItems)
|
||||
{
|
||||
if (selectedSearchList.Contains(item))
|
||||
selectedSearchList.Remove(item);
|
||||
if (_listBoxSearch.Items.Contains(item))
|
||||
{
|
||||
if (_listBox.SelectedItems.Contains(item))
|
||||
_listBox.SelectedItems.Remove(item);
|
||||
}
|
||||
|
||||
if (selectedList.Contains(item))
|
||||
selectedList.Remove(item);
|
||||
}
|
||||
|
||||
Combination();
|
||||
SelectionChecked(_listBoxSearch);
|
||||
}
|
||||
|
||||
if (e.AddedItems.Count > 0)
|
||||
{
|
||||
foreach (var item in e.AddedItems)
|
||||
if (!_listBox.SelectedItems.Contains(item))
|
||||
_listBox.SelectedItems.Add(item);
|
||||
Combination();
|
||||
SelectionChecked(_listBoxSearch);
|
||||
}
|
||||
}
|
||||
|
||||
private void SelectionChecked(ListBox listbox)
|
||||
{
|
||||
if (listbox.SelectedItems.Count > 0
|
||||
&&
|
||||
listbox.Items.Count == listbox.SelectedItems.Count)
|
||||
{
|
||||
_checkBox.Checked -= OnCheckBox_Checked;
|
||||
_checkBox.IsChecked = true;
|
||||
_checkBox.Checked += OnCheckBox_Checked;
|
||||
}
|
||||
else
|
||||
{
|
||||
_checkBox.Checked -= OnCheckBox_Checked;
|
||||
if (listbox.SelectedItems.Count > 0
|
||||
&&
|
||||
listbox.Items.Count == listbox.SelectedItems.Count)
|
||||
{
|
||||
if (_checkBox.IsChecked != true)
|
||||
_checkBox.IsChecked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (listbox.SelectedItems.Count == 0)
|
||||
_checkBox.IsChecked = false;
|
||||
else
|
||||
_checkBox.IsChecked = null;
|
||||
}
|
||||
|
||||
_checkBox.Checked += OnCheckBox_Checked;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetDisplayText(object dataItem, string path = null)
|
||||
{
|
||||
if (dataItem == null) return string.Empty;
|
||||
return GetPropertyValue(dataItem);
|
||||
}
|
||||
|
||||
private void OnTextbox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(theLastText)) theLastText = _textBox.Text;
|
||||
SearchText(_textBox.Text);
|
||||
}
|
||||
|
||||
private void SearchText(string _text)
|
||||
{
|
||||
var text = _text;
|
||||
if (string.IsNullOrWhiteSpace(text))
|
||||
{
|
||||
if (_listBoxSearch.Visibility != Visibility.Collapsed)
|
||||
_listBoxSearch.Visibility = Visibility.Collapsed;
|
||||
if (_listBox.Visibility != Visibility.Visible)
|
||||
_listBox.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_listBoxSearch.Visibility != Visibility.Visible)
|
||||
_listBoxSearch.Visibility = Visibility.Visible;
|
||||
if (_listBox.Visibility != Visibility.Collapsed)
|
||||
_listBox.Visibility = Visibility.Collapsed;
|
||||
var listSearch = new List<object>();
|
||||
foreach (var item in _listBox.Items)
|
||||
{
|
||||
var str = GetPropertyValue(item);
|
||||
if (string.IsNullOrWhiteSpace(str))
|
||||
str = item.ToString();
|
||||
if (!string.IsNullOrWhiteSpace(str))
|
||||
if (str.ToUpperInvariant().Contains(text.ToUpperInvariant()))
|
||||
listSearch.Add(item);
|
||||
}
|
||||
|
||||
foreach (var item in selectedList)
|
||||
if (!listSearch.Contains(item))
|
||||
listSearch.Add(item);
|
||||
|
||||
var lastItem = ItemsSourceSearch;
|
||||
ItemsSourceSearch = listSearch;
|
||||
SelectionChecked(_listBoxSearch);
|
||||
selectedItems.Clear();
|
||||
foreach (var item in _listBoxSearch.Items)
|
||||
if (_listBox.SelectedItems.Contains(item))
|
||||
if (!_listBoxSearch.SelectedItems.Contains(item))
|
||||
_listBoxSearch.SelectedItems.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private string GetPropertyValue(object item)
|
||||
{
|
||||
var result = string.Empty;
|
||||
var nameParts = DisplayMemberPath.Split('.');
|
||||
if (nameParts.Length == 1)
|
||||
{
|
||||
var property = item.GetType().GetProperty(DisplayMemberPath);
|
||||
if (property != null)
|
||||
return (property.GetValue(item, null) ?? string.Empty).ToString();
|
||||
}
|
||||
|
||||
return result.ToUpperInvariant();
|
||||
}
|
||||
|
||||
private static void OnIsDropDownOpenChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var multiSelectionSearchComboBox = o as MultiSelectSearchComboBox;
|
||||
if (multiSelectionSearchComboBox != null)
|
||||
multiSelectionSearchComboBox.OnIsOpenChanged((bool)e.OldValue, (bool)e.NewValue);
|
||||
}
|
||||
|
||||
protected virtual void OnIsOpenChanged(bool oldValue, bool newValue)
|
||||
{
|
||||
if (!newValue)
|
||||
RaiseRoutedEvent(ClosedEvent);
|
||||
}
|
||||
|
||||
private void RaiseRoutedEvent(RoutedEvent routedEvent)
|
||||
{
|
||||
var args = new RoutedEventArgs(routedEvent, this);
|
||||
RaiseEvent(args);
|
||||
}
|
||||
|
||||
private static void OnMaxDropDownHeightChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var comboBox = o as MultiSelectSearchComboBox;
|
||||
if (comboBox != null)
|
||||
comboBox.OnMaxDropDownHeightChanged((double)e.OldValue, (double)e.NewValue);
|
||||
}
|
||||
|
||||
protected virtual void OnMaxDropDownHeightChanged(double oldValue, double newValue)
|
||||
{
|
||||
}
|
||||
|
||||
private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
|
||||
var mltiSelectionSearchComboBox = d as MultiSelectSearchComboBox;
|
||||
|
||||
if (e.NewValue != null)
|
||||
{
|
||||
var collection = e.NewValue as IList;
|
||||
if (collection.Count <= 0) return;
|
||||
|
||||
//mltiSelectionSearchComboBox._listBox.SelectionChanged -=
|
||||
// mltiSelectionSearchComboBox.OnListBox_SelectionChanged;
|
||||
// foreach (var item in collection)
|
||||
// {
|
||||
// var name = mltiSelectionSearchComboBox.GetPropertyValue(item);
|
||||
// object model = null;
|
||||
// if (!string.IsNullOrWhiteSpace(name))
|
||||
// model = mltiSelectionSearchComboBox._listBox.ItemsSource.OfType<object>().FirstOrDefault(h =>
|
||||
// mltiSelectionSearchComboBox.GetPropertyValue(h) == name);
|
||||
// else
|
||||
// model = mltiSelectionSearchComboBox._listBox.ItemsSource.OfType<object>()
|
||||
// .FirstOrDefault(h => h == item);
|
||||
// if (model != null && !mltiSelectionSearchComboBox._listBox.SelectedItems.Contains(item))
|
||||
// mltiSelectionSearchComboBox._listBox.SelectedItems.Add(model);
|
||||
// }
|
||||
|
||||
// mltiSelectionSearchComboBox._listBox.SelectionChanged +=
|
||||
// mltiSelectionSearchComboBox.OnListBox_SelectionChanged;
|
||||
// mltiSelectionSearchComboBox.Combination();
|
||||
// 如果模板未应用,暂存 SelectedItems
|
||||
if (!mltiSelectionSearchComboBox._isTemplateApplied)
|
||||
{
|
||||
mltiSelectionSearchComboBox._pendingSelectedItems = e.NewValue as IList;
|
||||
return;
|
||||
}
|
||||
|
||||
// 模板已应用,正常处理
|
||||
mltiSelectionSearchComboBox.HandleSelectedItemsChanged(e.NewValue as IList);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleSelectedItemsChanged(IList newSelectedItems)
|
||||
{
|
||||
if (newSelectedItems == null || _listBox == null)
|
||||
return;
|
||||
|
||||
_listBox.SelectionChanged -= OnListBox_SelectionChanged;
|
||||
|
||||
// 清空并重新添加选中项
|
||||
_listBox.SelectedItems.Clear();
|
||||
foreach (var item in newSelectedItems)
|
||||
{
|
||||
var model = FindItemInItemsSource(item);
|
||||
if (model != null && !_listBox.SelectedItems.Contains(model))
|
||||
_listBox.SelectedItems.Add(model);
|
||||
}
|
||||
|
||||
_listBox.SelectionChanged += OnListBox_SelectionChanged;
|
||||
Combination(); // 更新显示文本
|
||||
}
|
||||
private object FindItemInItemsSource(object targetItem)
|
||||
{
|
||||
if (targetItem == null) return null;
|
||||
|
||||
// 根据 DisplayMemberPath 或直接比较查找匹配项
|
||||
var displayPath = DisplayMemberPath;
|
||||
if (string.IsNullOrEmpty(displayPath))
|
||||
return targetItem;
|
||||
|
||||
var items = _listBox.ItemsSource?.OfType<object>().ToList();
|
||||
if (items == null) return null;
|
||||
|
||||
var property = targetItem.GetType().GetProperty(displayPath);
|
||||
if (property == null) return null;
|
||||
|
||||
var targetValue = property.GetValue(targetItem)?.ToString();
|
||||
return items.FirstOrDefault(i =>
|
||||
{
|
||||
var iValue = i.GetType().GetProperty(displayPath)?.GetValue(i)?.ToString();
|
||||
return iValue == targetValue;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 当不需要使用Grid的分行分列,则可使用 SmallPanel
|
||||
/// </summary>
|
||||
public class SmallPanel : Panel
|
||||
{
|
||||
/// <summary>
|
||||
/// Content measurement.
|
||||
/// </summary>
|
||||
/// <param name="constraint">Constraint</param>
|
||||
/// <returns>Desired size</returns>
|
||||
protected override Size MeasureOverride(Size constraint)
|
||||
{
|
||||
Size gridDesiredSize = new Size();
|
||||
UIElementCollection children = InternalChildren;
|
||||
|
||||
for (int i = 0, count = children.Count; i < count; ++i)
|
||||
{
|
||||
UIElement child = children[i];
|
||||
if (child != null)
|
||||
{
|
||||
child.Measure(constraint);
|
||||
gridDesiredSize.Width = Math.Max(gridDesiredSize.Width, child.DesiredSize.Width);
|
||||
gridDesiredSize.Height = Math.Max(gridDesiredSize.Height, child.DesiredSize.Height);
|
||||
}
|
||||
}
|
||||
return (gridDesiredSize);
|
||||
}
|
||||
/// <summary>
|
||||
/// Content arrangement.
|
||||
/// </summary>
|
||||
/// <param name="arrangeSize">Arrange size</param>
|
||||
protected override Size ArrangeOverride(Size arrangeSize)
|
||||
{
|
||||
UIElementCollection children = InternalChildren;
|
||||
for (int i = 0, count = children.Count; i < count; ++i)
|
||||
{
|
||||
UIElement child = children[i];
|
||||
if (child != null)
|
||||
{
|
||||
child.Arrange(new Rect(arrangeSize));
|
||||
}
|
||||
}
|
||||
return (arrangeSize);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
using System.Windows.Media;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class WDBorder : Border
|
||||
{
|
||||
public static readonly DependencyPropertyKey ContentClipPropertyKey =
|
||||
DependencyProperty.RegisterReadOnly("ContentClip", typeof(Geometry), typeof(WDBorder),
|
||||
new PropertyMetadata(null));
|
||||
|
||||
public static readonly DependencyProperty ContentClipProperty = ContentClipPropertyKey.DependencyProperty;
|
||||
|
||||
public Geometry ContentClip
|
||||
{
|
||||
get => (Geometry)GetValue(ContentClipProperty);
|
||||
set => SetValue(ContentClipProperty, value);
|
||||
}
|
||||
|
||||
private Geometry CalculateContentClip()
|
||||
{
|
||||
var borderThickness = BorderThickness;
|
||||
var cornerRadius = CornerRadius;
|
||||
var renderSize = RenderSize;
|
||||
var width = renderSize.Width - borderThickness.Left - borderThickness.Right;
|
||||
var height = renderSize.Height - borderThickness.Top - borderThickness.Bottom;
|
||||
if (width > 0.0 && height > 0.0)
|
||||
{
|
||||
var rect = new Rect(0.0, 0.0, width, height);
|
||||
var radii = new GeometryHelper.Radii(cornerRadius, borderThickness, false);
|
||||
var streamGeometry = new StreamGeometry();
|
||||
using (var streamGeometryContext = streamGeometry.Open())
|
||||
{
|
||||
GeometryHelper.GenerateGeometry(streamGeometryContext, rect, radii);
|
||||
streamGeometry.Freeze();
|
||||
return streamGeometry;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override void OnRender(DrawingContext dc)
|
||||
{
|
||||
SetValue(ContentClipPropertyKey, CalculateContentClip());
|
||||
base.OnRender(dc);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,170 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public static class Win32
|
||||
{
|
||||
public const string
|
||||
User32 = "user32.dll",
|
||||
Gdi32 = "gdi32.dll",
|
||||
GdiPlus = "gdiplus.dll",
|
||||
Kernel32 = "kernel32.dll",
|
||||
Shell32 = "shell32.dll",
|
||||
MsImg = "msimg32.dll",
|
||||
NTdll = "ntdll.dll",
|
||||
DwmApi = "dwmapi.dll",
|
||||
Winmm = "winmm.dll",
|
||||
Shcore = "Shcore.dll";
|
||||
//查找窗口的委托 查找逻辑
|
||||
public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern IntPtr FindWindow(string className, string winName);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern IntPtr SendMessageTimeout(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam,
|
||||
uint fuFlage, uint timeout, IntPtr result);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className,
|
||||
string winName);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern IntPtr SetParent(IntPtr hwnd, IntPtr parentHwnd);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
|
||||
|
||||
[DllImport(Winmm)]
|
||||
public static extern long mciSendString(string strCommand, StringBuilder strReturn,
|
||||
int iReturnLength, IntPtr hwndCallback);
|
||||
|
||||
#region WINAPI DLL Imports
|
||||
|
||||
[DllImport(Gdi32, ExactSpelling = true, PreserveSig = true, SetLastError = true)]
|
||||
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
|
||||
|
||||
[DllImport(Gdi32)]
|
||||
public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
|
||||
|
||||
[DllImport(Gdi32, SetLastError = true)]
|
||||
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
|
||||
|
||||
[DllImport(Gdi32)]
|
||||
public static extern bool DeleteObject(IntPtr hObject);
|
||||
|
||||
[DllImport(Gdi32)]
|
||||
public static extern IntPtr CreateBitmap(int nWidth, int nHeight, uint cPlanes, uint cBitsPerPel,
|
||||
IntPtr lpvBits);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern IntPtr GetDC(IntPtr hWnd);
|
||||
|
||||
[DllImport(User32)]
|
||||
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
|
||||
|
||||
|
||||
[DllImport(Gdi32, EntryPoint = "DeleteDC")]
|
||||
public static extern IntPtr DeleteDC(IntPtr hDc);
|
||||
|
||||
|
||||
public const int SM_CXSCREEN = 0;
|
||||
|
||||
public const int SM_CYSCREEN = 1;
|
||||
|
||||
[DllImport(User32, EntryPoint = "GetDesktopWindow")]
|
||||
public static extern IntPtr GetDesktopWindow();
|
||||
|
||||
[DllImport(User32, EntryPoint = "GetSystemMetrics")]
|
||||
public static extern int GetSystemMetrics(int abc);
|
||||
|
||||
[DllImport(User32, EntryPoint = "GetWindowDC")]
|
||||
public static extern IntPtr GetWindowDC(int ptr);
|
||||
|
||||
public struct DeskTopSize
|
||||
{
|
||||
public int cx;
|
||||
public int cy;
|
||||
}
|
||||
|
||||
public enum TernaryRasterOperations : uint
|
||||
{
|
||||
/// <summary>dest = source</summary>
|
||||
SRCCOPY = 0x00CC0020,
|
||||
|
||||
/// <summary>dest = source OR dest</summary>
|
||||
SRCPAINT = 0x00EE0086,
|
||||
|
||||
/// <summary>dest = source AND dest</summary>
|
||||
SRCAND = 0x008800C6,
|
||||
|
||||
/// <summary>dest = source XOR dest</summary>
|
||||
SRCINVERT = 0x00660046,
|
||||
|
||||
/// <summary>dest = source AND (NOT dest)</summary>
|
||||
SRCERASE = 0x00440328,
|
||||
|
||||
/// <summary>dest = (NOT source)</summary>
|
||||
NOTSRCCOPY = 0x00330008,
|
||||
|
||||
/// <summary>dest = (NOT src) AND (NOT dest)</summary>
|
||||
NOTSRCERASE = 0x001100A6,
|
||||
|
||||
/// <summary>dest = (source AND pattern)</summary>
|
||||
MERGECOPY = 0x00C000CA,
|
||||
|
||||
/// <summary>dest = (NOT source) OR dest</summary>
|
||||
MERGEPAINT = 0x00BB0226,
|
||||
|
||||
/// <summary>dest = pattern</summary>
|
||||
PATCOPY = 0x00F00021,
|
||||
|
||||
/// <summary>dest = DPSnoo</summary>
|
||||
PATPAINT = 0x00FB0A09,
|
||||
|
||||
/// <summary>dest = pattern XOR dest</summary>
|
||||
PATINVERT = 0x005A0049,
|
||||
|
||||
/// <summary>dest = (NOT dest)</summary>
|
||||
DSTINVERT = 0x00550009,
|
||||
|
||||
/// <summary>dest = BLACK</summary>
|
||||
BLACKNESS = 0x00000042,
|
||||
|
||||
/// <summary>dest = WHITE</summary>
|
||||
WHITENESS = 0x00FF0062
|
||||
}
|
||||
|
||||
[DllImport(Gdi32)]
|
||||
public static extern bool BitBlt(IntPtr hdc, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc,
|
||||
int nXSrc, int nYSrc, TernaryRasterOperations dwRop);
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 设置鼠标的坐标
|
||||
/// </summary>
|
||||
/// <param name="x">横坐标</param>
|
||||
/// <param name="y">纵坐标</param>
|
||||
[DllImport(User32)]
|
||||
public extern static void SetCursorPos(int x, int y);
|
||||
|
||||
}
|
||||
}
|
33
newFront/c#前端/SWS.CustomControl/Properties/AssemblyInfo.cs
Normal file
33
newFront/c#前端/SWS.CustomControl/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("SWS.CustomControl")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("SWS.CustomControl")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("2dcf996e-063b-4b95-8530-28f6df0da58a")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
80
newFront/c#前端/SWS.CustomControl/SWS.CustomControl.csproj
Normal file
80
newFront/c#前端/SWS.CustomControl/SWS.CustomControl.csproj
Normal file
@ -0,0 +1,80 @@
|
||||
<?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>{2DCF996E-063B-4B95-8530-28F6DF0DA58A}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SWS.CustomControl</RootNamespace>
|
||||
<AssemblyName>SWS.CustomControl</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<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>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</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>
|
||||
<ItemGroup>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="customWindowTitleBar.xaml.cs">
|
||||
<DependentUpon>customWindowTitleBar.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="IconButton\IconButton.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\CollectionToStringConverter.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\DoubleUtil.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\ElementHelper.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\GeometryHelper.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\MultiSelectComboBoxItem.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\MultiSelectListBox.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\MultiSelectSearchComboBox.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\SmallPanel.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\WDBorder.cs" />
|
||||
<Compile Include="MultiSelectSearchComboBox\Win32.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Selector\ConditionalStyleSelector.cs" />
|
||||
<Compile Include="Selector\SignalNoticeStyleSelector.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="customWindowTitleBar.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SWS.Model\SWS.Model.csproj">
|
||||
<Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project>
|
||||
<Name>SWS.Model</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
@ -0,0 +1,83 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class ConditionalStyleSelector:StyleSelector
|
||||
{
|
||||
public override System.Windows.Style SelectStyle(object item, System.Windows.DependencyObject container)
|
||||
{
|
||||
//获取到转换器返回的值
|
||||
object conditionValue = this.ConditionConverter.Convert(item, null, null, null);
|
||||
foreach (ConditionalStyleRule rule in this.Rules)
|
||||
{
|
||||
//值相同则返回当前样式
|
||||
if (Equals(rule.Value, conditionValue))
|
||||
{
|
||||
return rule.Style;
|
||||
}
|
||||
}
|
||||
|
||||
return base.SelectStyle(item, container);
|
||||
}
|
||||
|
||||
List<ConditionalStyleRule> _Rules;
|
||||
public List<ConditionalStyleRule> Rules
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this._Rules == null)
|
||||
{
|
||||
this._Rules = new List<ConditionalStyleRule>();
|
||||
}
|
||||
|
||||
return this._Rules;
|
||||
}
|
||||
}
|
||||
|
||||
IValueConverter _ConditionConverter;
|
||||
public IValueConverter ConditionConverter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._ConditionConverter;
|
||||
}
|
||||
set
|
||||
{
|
||||
this._ConditionConverter = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ConditionalStyleRule
|
||||
{
|
||||
object _Value;
|
||||
public object Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Value;
|
||||
}
|
||||
set
|
||||
{
|
||||
this._Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
Style _Style;
|
||||
public Style Style
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Style;
|
||||
}
|
||||
set
|
||||
{
|
||||
this._Style = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.CustomControl
|
||||
{
|
||||
public class SignalNoticeStyleSelector:StyleSelector
|
||||
{
|
||||
public override Style SelectStyle(object item, DependencyObject container)
|
||||
{
|
||||
SignalNotice conditionValue = item as SignalNotice;
|
||||
string value = conditionValue.CheckFLG.ToString();
|
||||
foreach (ConditionalStyleRule rule in this.Rules)
|
||||
{
|
||||
//值相同则返回当前样式
|
||||
if (Equals(rule.Value, value))
|
||||
{
|
||||
return rule.Style;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return base.SelectStyle(item, container);
|
||||
}
|
||||
|
||||
List<ConditionalStyleRule> _Rules;
|
||||
public List<ConditionalStyleRule> Rules
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this._Rules == null)
|
||||
{
|
||||
this._Rules = new List<ConditionalStyleRule>();
|
||||
}
|
||||
|
||||
return this._Rules;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.dll
Normal file
Binary file not shown.
11363
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.xml
Normal file
11363
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.pdb
Normal file
Binary file not shown.
5209
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.xml
Normal file
5209
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.pdb
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.pdb
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user