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; namespace Plugin.SeqEditor; /// /// Interaction logic for UserControl1.xaml /// public partial class SeqEditor : PluginControl { public SeqEditor() { InitializeComponent(); CbFilter.ItemsSource = (IEnumerable) new MultiComboBoxDataConverter().Convert(FilterTypeData.ItemSource, null, null, null ); } public override void InitFinish() { this.DataContext = new SeqEditorViewModel(this, log); } public void BackgroundAction(Action action, string message) { new MaskWindow((WindowX)Window.GetWindow(this), (win) => { action?.Invoke(); } ).Info(message); } /// /// Ê÷Êý¾Ýչʾ¹ýÂË /// /// /// private void CollectionViewSource_Filter(object sender, FilterEventArgs e) { if (e.Item is TreeItemData data) { e.Accepted = data.IsVisible; } } // /// Ê÷Õ¹¿ª/¹Ø±Õʼþ /// /// /// private void treeDataGrid_ExpandedChange(object sender, bool e) { //CollectionViewSource cvs = this.Resources["TreeGridFilter"] as CollectionViewSource; //cvs?.View.Refresh(); } private void treeDataGrid_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = false; } private void Expander_PreviewMouseDown(object sender, MouseButtonEventArgs e) { e.Handled = false; } private void TreeListView_SizeChanged(object sender, SizeChangedEventArgs e) { //var treeListView = sender as TreeListView; //var columns = treeListView.Columns; //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 ? "Ò»¼üÊÕÆð" : "Ò»¼üÕ¹¿ª"; } }