新增自定义弹框窗口

新增吐司提示
This commit is contained in:
rmbgame
2021-03-07 17:10:38 +08:00
parent c5a0864d99
commit 3a95b8b802
10 changed files with 148 additions and 79 deletions
@@ -5,66 +5,66 @@ using System.Linq;
namespace System.Application.Serialization
{
public class FileSettingsProvider : ISerializationProvider
{
private readonly string _path;
private readonly object _sync = new object();
private SortedDictionary<string, object> _settings = new SortedDictionary<string, object>();
public class FileSettingsProvider : ISerializationProvider
{
private readonly string _path;
private readonly object _sync = new object();
private SortedDictionary<string, object> _settings = new SortedDictionary<string, object>();
public bool IsLoaded { get; private set; }
public bool IsLoaded { get; private set; }
public FileSettingsProvider(string path)
{
this._path = path;
}
public FileSettingsProvider(string path)
{
this._path = path;
}
public void SetValue<T>(string key, T value)
{
lock (this._sync)
{
this._settings[key] = value;
}
}
public void SetValue<T>(string key, T value)
{
lock (this._sync)
{
this._settings[key] = value;
}
}
public bool TryGetValue<T>(string key, out T value)
{
lock (this._sync)
{
object obj;
if (this._settings.TryGetValue(key, out obj) && obj is T)
{
value = (T)obj;
return true;
}
}
public bool TryGetValue<T>(string key, out T value)
{
lock (this._sync)
{
object obj;
if (this._settings.TryGetValue(key, out obj) && obj is T)
{
value = (T)obj;
return true;
}
}
value = default(T);
return false;
}
value = default(T);
return false;
}
public bool RemoveValue(string key)
{
lock (this._sync)
{
return this._settings.Remove(key);
}
}
public bool RemoveValue(string key)
{
lock (this._sync)
{
return this._settings.Remove(key);
}
}
public void Save()
{
if (this._settings.Count == 0) return;
public void Save()
{
if (this._settings.Count == 0) return;
var dir = Path.GetDirectoryName(this._path);
if (dir == null) throw new DirectoryNotFoundException();
var dir = Path.GetDirectoryName(this._path);
if (dir == null) throw new DirectoryNotFoundException();
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
lock (this._sync)
{
lock (this._sync)
{
using var stream = new FileStream(this._path, FileMode.Create, FileAccess.ReadWrite);
if (stream.Position > 0)
{
@@ -74,12 +74,12 @@ namespace System.Application.Serialization
stream.Write(data, 0, data.Length);
//XamlServices.Save(stream, this._settings);
}
}
}
public void Load()
{
if (File.Exists(this._path))
{
public void Load()
{
if (File.Exists(this._path))
{
using var stream = new FileStream(this._path, FileMode.Open, FileAccess.Read);
lock (this._sync)
{
@@ -95,21 +95,21 @@ namespace System.Application.Serialization
: new SortedDictionary<string, object>(source);
}
}
else
{
lock (this._sync)
{
this._settings = new SortedDictionary<string, object>();
}
}
else
{
lock (this._sync)
{
this._settings = new SortedDictionary<string, object>();
}
}
this.IsLoaded = true;
}
this.IsLoaded = true;
}
event EventHandler ISerializationProvider.Reloaded
{
add { }
remove { }
}
}
event EventHandler ISerializationProvider.Reloaded
{
add { }
remove { }
}
}
}