add:插件
屎山
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user