feat(docstring):添加部分docstring (#376)
* feat(docstring):添加docstring Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * fix(docstring):修复部分docstring格式错误 Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * fix(docstring):修复部分docstring Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * chore(Docstring):MW_* 前14 * chore(Docstring):MW_* part 2 * chore(Docstring):MW_* part 3 * chore:优化缩进 * fix: 修复数学计算中的潜在除零错误和数值稳定性问题 Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * chore:删除Rebase时多余的OOBE函数 * chore: 更新代码注释和文档格式 修复XML文档注释中的格式问题,统一使用<c>和<see>标签 更新ConfigHelper类的预留说明,明确未来扩展用途 优化TimerDisplayDate_Elapsed方法的注释,说明UI异步更新机制 合并重复的注释摘要行,提高文档可读性 添加形状识别功能的64位进程限制说明 修正视频呈现器设备选择逻辑的文档说明 * chore(IPPTLinkManager): 更新TryEndSlideShow方法的XML注释格式 * chore: 修正代码注释中的术语和格式问题 更新多个文件中的XML注释,统一使用<see langword="..."/>标记代替<c>...</c>标记 规范术语使用(如"延迟初始化"代替"懒惰初始化") 修正注释中的格式错误和补充说明 调整代码区域的注释对齐格式 --------- Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com>
This commit is contained in:
@@ -8,11 +8,20 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
{
|
||||
public partial class SecurityPanel : SettingsPanelBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 初始化 SecurityPanel 实例并构建其界面组件。
|
||||
/// </summary>
|
||||
public SecurityPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从 MainWindow.Settings 将安全相关设置加载并同步到面板的开关控件上。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 确保 MainWindow.Settings.Security 存在(若为 null 则创建),在加载期间暂时禁用变更处理以避免触发回调,设置各个开关的状态并更新与密码相关的 UI 状态;任何加载期间的异常会被捕获并静默忽略。
|
||||
/// </remarks>
|
||||
public override void LoadSettings()
|
||||
{
|
||||
if (MainWindow.Settings == null) return;
|
||||
@@ -37,6 +46,14 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
_isLoaded = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新与主密码相关的界面控件的可用性:根据当前设置启用或禁用“设置/更改密码”按钮及相关用途开关。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 当全局安全设置的 PasswordEnabled 为 true 时,启用 BtnSetOrChangePassword 以及以下用途开关:
|
||||
/// ToggleSwitchRequirePasswordOnExit、ToggleSwitchRequirePasswordOnEnterSettings、ToggleSwitchRequirePasswordOnResetConfig;
|
||||
/// 否则禁用它们以阻止操作。
|
||||
/// </remarks>
|
||||
private void UpdatePasswordUiState()
|
||||
{
|
||||
var sec = MainWindow.Settings?.Security;
|
||||
@@ -54,6 +71,14 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
if (t3 != null) t3.IsEnabled = usageEnabled;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据切换项标识更新对应的安全设置并保存变更。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 对于启用或禁用主密码会在必要时弹出密码设置或验证对话框;对进程保护的修改会同时应用到 ProcessProtectionManager。方法会在成功变更后持久化设置并更新相关 UI 状态,若用户在交互中取消,则会恢复切换控件到原始状态。
|
||||
/// </remarks>
|
||||
/// <param name="tag">切换项的标识字符串,支持的值:`"PasswordEnabled"`、`"RequirePasswordOnExit"`、`"RequirePasswordOnEnterSettings"`、`"RequirePasswordOnResetConfig"`、`"EnableProcessProtection"`。</param>
|
||||
/// <param name="newState">切换的新布尔状态:`true` 表示启用,`false` 表示禁用。</param>
|
||||
protected override async void HandleToggleSwitchChange(string tag, bool newState)
|
||||
{
|
||||
if (MainWindow.Settings == null) return;
|
||||
@@ -127,16 +152,27 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理选项按钮组的选择更改。此面板不包含选项按钮组,因此不会执行任何操作。
|
||||
/// </summary>
|
||||
/// <param name="group">选项组的标识(未使用)。</param>
|
||||
/// <param name="value">被选中的值(未使用)。</param>
|
||||
protected override void HandleOptionChange(string group, string value)
|
||||
{
|
||||
// 本面板无选项按钮组
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理切换开关的点击事件。
|
||||
/// </summary>
|
||||
protected override void ToggleSwitch_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
base.ToggleSwitch_Click(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 向用户弹出设置或更改密码的对话框;当用户输入非空新密码时,将该密码保存到设置中、启用密码功能、持久化设置并更新密码相关的 UI 状态。
|
||||
/// </summary>
|
||||
private async void BtnSetOrChangePassword_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (MainWindow.Settings == null) return;
|
||||
@@ -157,6 +193,11 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
public event EventHandler<RoutedEventArgs> IsTopBarNeedShadowEffect;
|
||||
public event EventHandler<RoutedEventArgs> IsTopBarNeedNoShadowEffect;
|
||||
|
||||
/// <summary>
|
||||
/// 根据 ScrollViewer 的垂直滚动偏移触发顶部栏阴影显示或隐藏事件。
|
||||
/// </summary>
|
||||
/// <param name="sender">触发事件的 ScrollViewer 控件。</param>
|
||||
/// <param name="e">滚动更改的事件参数(未被方法使用)。</param>
|
||||
private void ScrollViewerEx_ScrollChanged(object sender, ScrollChangedEventArgs e)
|
||||
{
|
||||
var scrollViewer = (ScrollViewer)sender;
|
||||
@@ -164,6 +205,12 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
else IsTopBarNeedNoShadowEffect?.Invoke(this, new RoutedEventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将当前主题应用到此面板并重新加载面板设置。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 在应用主题或重载设置时抛出的异常会被捕获并忽略,不会向上抛出。
|
||||
/// </remarks>
|
||||
public void ApplyTheme()
|
||||
{
|
||||
try
|
||||
@@ -175,4 +222,3 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,12 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
Loaded += SettingsPanelBase_Loaded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理控件的 Loaded 事件:加载面板设置、启用触摸支持,尝试调用面板的 ApplyTheme 方法(若存在),
|
||||
/// 再次加载设置并将内部已加载标志设为 true。
|
||||
/// </summary>
|
||||
/// <param name="sender">触发事件的对象(通常是当前面板实例)。</param>
|
||||
/// <param name="e">事件参数,包含路由事件的相关信息。</param>
|
||||
private void SettingsPanelBase_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
LoadSettings();
|
||||
@@ -272,4 +278,3 @@ namespace Ink_Canvas.Windows.SettingsViews
|
||||
protected abstract void HandleOptionChange(string group, string value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,12 @@ namespace Ink_Canvas.Windows
|
||||
{
|
||||
private MainWindow _mainWindow;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化设置窗口的 UI、事件和面板并加载初始状态与主题。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 构造函数完成以下工作:获取主窗口引用,注册搜索与菜单事件,构建并绑定侧栏条目,挂接各设置面板的滚动/阴影事件,初始化面板数组、滚动容器、标题与名称映射,设置初始选中项与主题状态,为自定义滑块添加触摸支持,预加载所有面板设置,并多次应用主题以确保视觉元素正确呈现(包含延迟再应用以修正标题栏等)。
|
||||
/// </remarks>
|
||||
public SettingsWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -322,8 +328,11 @@ namespace Ink_Canvas.Windows
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通知所有面板应用主题
|
||||
/// 通知所有已注册的设置面板应用当前主题配置,使各面板更新其视觉样式以匹配窗口主题。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 对每个面板尝试通过反射调用其 `ApplyTheme` 方法;如果某面板不存在该方法则会跳过,调用过程中发生的异常会被捕获并写入调试输出,但不会中断对其它面板的处理。
|
||||
/// </remarks>
|
||||
private void ApplyThemeToAllPanels()
|
||||
{
|
||||
try
|
||||
@@ -753,8 +762,12 @@ namespace Ink_Canvas.Windows
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载所有设置面板的设置
|
||||
/// 预加载并初始化所有设置面板:对每个面板尝试加载设置、启用触摸支持并应用当前主题。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 该操作在 UI 线程上以 DispatcherPriority.Loaded 异步调度执行,并在完成后再次触发对所有面板的主题应用以确保视觉状态一致。
|
||||
/// 对单个面板的初始化错误会被捕获并处理,不会中断其它面板的预加载流程。
|
||||
/// </remarks>
|
||||
private void LoadAllPanelsSettings()
|
||||
{
|
||||
try
|
||||
@@ -938,6 +951,16 @@ namespace Ink_Canvas.Windows
|
||||
public string[] SettingsPaneTitles;
|
||||
public string[] SettingsPaneNames;
|
||||
|
||||
/// <summary>
|
||||
/// 根据当前选中的侧边栏项更新侧边栏条目状态、面板可见性与主题并将视图滚动到顶部。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// - 将 SidebarItems 中的 Selected 与 SettingsWindowTitle.Text 与字段 _selectedSidebarItemName 同步;
|
||||
/// - 根据应用设置计算并同步每个 SidebarItem 的 IsDarkTheme;
|
||||
/// - 切换各个面板(Pane)的 Visibility,仅显示与 _selectedSidebarItemName 对应的面板;
|
||||
/// - 异步调用所选面板(若存在)的 ApplyTheme 方法以确保新显示面板使用正确主题;
|
||||
/// - 将所有已注册的 SettingsPaneScrollViewers 滚动到顶部以重置视图位置。
|
||||
/// </remarks>
|
||||
public void UpdateSidebarItemsSelection()
|
||||
{
|
||||
foreach (var si in SidebarItems)
|
||||
@@ -1815,4 +1838,4 @@ namespace Ink_Canvas.Windows
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user