alielie
2025-11-21 3a471ae651b228231bebb3a2d438baa1d4ac0261
Plugin.SeqEditor/SeqEditor.xaml.cs
@@ -1,9 +1,12 @@
using HMI.Base;
using HMI.UI;
using Panuon.WPF.UI;
using Plugin.SeqEditor.Entity;
using Plugin.SeqEditor.Util;
using Plugin.SeqEditor.ViewModel;
using System.Web.UI.WebControls;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
@@ -79,10 +82,62 @@
        //var width = treeListView.ActualWidth;
        //columns[0].Width = columns[0].Width + (width - columns[0].Width - columns[1].Width - columns[2].Width - columns[3].Width);
        //foreach (var col in columns) { 
        //    col.Width = 
        //}
    }
    public void HandleStatus(ItemContainerGenerator cg, StepUI step, bool status)
    {
        DependencyObject dObject = cg.ContainerFromItem(step);
        if (status == true)
        {
            if (dObject is TreeViewItem item)
            {
                if (step.Children != null && step.Children.Count > 0)
                {
                    if (item.IsExpanded != status)
                    {
                        item.IsExpanded = status;
                        item.UpdateLayout();
                    }
                    foreach (var child in step.Children)
                    {
                        HandleStatus(item.ItemContainerGenerator, child, status);
                    }
                }
            }
        }
        else
        {
            if (dObject is TreeViewItem item)
            {
                if (step.Children != null && step.Children.Count > 0)
                {
                    foreach (var child in step.Children)
                    {
                        HandleStatus(item.ItemContainerGenerator, child, status);
                    }
                    item.IsExpanded = status;
                }
            }
        }
    }
    public bool expandAll = false;
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        treeList.UpdateLayout();
        foreach (var item in treeList.Items)
        {
            if (item is StepUI step)
            {
                HandleStatus(treeList.ItemContainerGenerator, step, !expandAll);
            }
        }
        expandAll = !expandAll;
        //treeAll.Content = expandAll ? "一键收起" : "一键展开";
    }
}