add:插件

屎山
This commit is contained in:
PrefacedCorg
2026-04-10 01:24:57 +08:00
parent 256b3c0887
commit 84b626d344
17 changed files with 842 additions and 1 deletions
@@ -0,0 +1,71 @@
using Ink_Canvas.Plugins;
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace Ink_Canvas.Windows.SettingsViews.Pages
{
public partial class PluginSettingsPage : iNKORE.UI.WPF.Modern.Controls.Page
{
private static PluginInfo _currentPlugin;
public static PluginInfo CurrentPlugin
{
get { return _currentPlugin; }
set
{
_currentPlugin = value;
}
}
public PluginSettingsPage()
{
InitializeComponent();
Loaded += PluginSettingsPage_Loaded;
}
private void PluginSettingsPage_Loaded(object sender, RoutedEventArgs e)
{
LoadPluginSettings();
}
public void LoadPluginSettings()
{
if (_currentPlugin == null)
{
return;
}
try
{
var settingsView = _currentPlugin.Instance.GetSettingsView();
if (settingsView != null && settingsView is UIElement uiElement)
{
var parent = VisualTreeHelper.GetParent(uiElement);
if (parent != null)
{
if (parent is Decorator decorator)
{
decorator.Child = null;
}
else if (parent is ContentControl contentControl)
{
contentControl.Content = null;
}
else if (parent is Panel panel)
{
panel.Children.Remove(uiElement);
}
}
PluginSettingsContent.Content = uiElement;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format("加载插件设置时出错: {0}", ex.Message));
}
}
}
}