chr
2024-08-07 22beee93f14d042aa184148c53efb79e23416526
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
 
namespace PdmSwPlugin.Common.Control.TreeGrid
{
    public class TreeItemContentControl : ContentControl
    {
        static TreeItemContentControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TreeItemContentControl), new FrameworkPropertyMetadata(typeof(TreeItemContentControl)));
        }
 
        public TreeItemContentControl()
        {
            this.Loaded += TreeItemContentControl_Loaded;
        }
 
        private void TreeItemContentControl_Loaded(object sender, RoutedEventArgs e)
        { 
            Loaded -= TreeItemContentControl_Loaded;
            var p = VisualTreeHelper.GetParent(this);
            if (p != null && p is FrameworkElement f)
            {
                f.Margin = new Thickness(0);
 
                if(p is ContentPresenter cp)
                {
                    
                }
            }
        }
 
        #region TreeData DependencyProperty
        public TreeItemData TreeData
        {
            get { return (TreeItemData)GetValue(TreeDataProperty); }
            set { SetValue(TreeDataProperty, value); }
        }
        public static readonly DependencyProperty TreeDataProperty =
                DependencyProperty.Register("TreeData", typeof(TreeItemData), typeof(TreeItemContentControl),
                new PropertyMetadata(null, new PropertyChangedCallback(TreeItemContentControl.OnTreeDataPropertyChanged)));
 
        private static void OnTreeDataPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            if (obj is TreeItemContentControl)
            {
                (obj as TreeItemContentControl).OnTreeDataValueChanged();
            }
        }
 
        protected void OnTreeDataValueChanged()
        {
 
        }
        #endregion
 
        #region LevelIndentSize DependencyProperty
        public int LevelIndentSize
        {
            get { return (int)GetValue(LevelIndentSizeProperty); }
            set { SetValue(LevelIndentSizeProperty, value); }
        }
        public static readonly DependencyProperty LevelIndentSizeProperty =
                DependencyProperty.Register("LevelIndentSize", typeof(int), typeof(TreeItemContentControl),
                new PropertyMetadata(30, new PropertyChangedCallback(TreeItemContentControl.OnLevelIndentSizePropertyChanged)));
 
        private static void OnLevelIndentSizePropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            if (obj is TreeItemContentControl)
            {
                (obj as TreeItemContentControl).OnLevelIndentSizeValueChanged();
            }
        }
 
        protected void OnLevelIndentSizeValueChanged()
        {
 
        }
        #endregion
 
        #region IconLineStroke DependencyProperty
        public Brush IconLineStroke
        {
            get { return (Brush)GetValue(IconLineStrokeProperty); }
            set { SetValue(IconLineStrokeProperty, value); }
        }
        public static readonly DependencyProperty IconLineStrokeProperty =
                DependencyProperty.Register("IconLineStroke", typeof(Brush), typeof(TreeItemContentControl),
                new PropertyMetadata(new SolidColorBrush(Colors.Blue), new PropertyChangedCallback(TreeItemContentControl.OnIconLineStrokePropertyChanged)));
 
        private static void OnIconLineStrokePropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            if (obj is TreeItemContentControl)
            {
                (obj as TreeItemContentControl).OnIconLineStrokeValueChanged();
            }
        }
 
        protected void OnIconLineStrokeValueChanged()
        {
 
        }
        #endregion
    }
}