瀏覽代碼

设置窗体标题&覆盖性写文本文件

melon.yin 3 年之前
父節點
當前提交
60472a372a
共有 2 個文件被更改,包括 13 次插入12 次删除
  1. 10 1
      fis/MainWindow.axaml.cs
  2. 3 11
      fis/Managers/TextFileManager.cs

+ 10 - 1
fis/MainWindow.axaml.cs

@@ -12,16 +12,19 @@ using Xilium.CefGlue.Avalonia;
 using Xilium.CefGlue.Common.Handlers;
 using System.Globalization;
 using System.Reflection;
+using System.Threading;
 
 namespace fis
 {
     public partial class MainWindow : Window
     {
+        public static SynchronizationContext? MainThreadSyncContext;
         private AvaloniaCefBrowser? _browser;
 
         public MainWindow()
         {
             InitializeComponent();
+            MainThreadSyncContext = SynchronizationContext.Current;
 #if DEBUG
             this.AttachDevTools();
 #endif
@@ -131,7 +134,13 @@ namespace fis
         /// 设置窗体标题
         /// </summary>
         /// <param name="title">标题</param>
-        public void SetTitle(string title) => _window.Title = title;
+        public void SetTitle(string title)
+        {
+            MainWindow.MainThreadSyncContext?.Send(new SendOrPostCallback((args) =>
+            {
+                _window.Title = title;
+            }), this);
+        }
 
         public int Age { get; set; }
     }

+ 3 - 11
fis/Managers/TextFileManager.cs

@@ -17,19 +17,11 @@ namespace fis.Managers
             try
             {
                 string filePath = GetFilePath(name);
-                using (var stream = new FileStream(
-                    filePath,
-                    FileMode.OpenOrCreate,
-                    FileAccess.ReadWrite,
-                    FileShare.None,
-                    bufferSize: 4096,
-                    useAsync: true)
-                )
+                if (!File.Exists(filePath))
                 {
-                    byte[] buffer = Encoding.UTF8.GetBytes(text);
-                    await stream.WriteAsync(buffer, 0, buffer.Length);
+                    File.Create(filePath);
                 }
-                //await File.WriteAllTextAsync(filePath, text, Encoding.UTF8);
+                await File.WriteAllTextAsync(filePath, text, Encoding.UTF8);
                 return true;
             }
             catch (Exception ex)