aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs
new file mode 100644
index 000000000..2acefc09c
--- /dev/null
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace Tango.Scripting.IDE.Converters
+{
+ public static class TreeViewItemExtensions
+ {
+ public static int GetDepth(this TreeViewItem item)
+ {
+ TreeViewItem parent;
+ while ((parent = GetParent(item)) != null)
+ {
+ return GetDepth(parent) + 1;
+ }
+ return 0;
+ }
+
+ private static TreeViewItem GetParent(TreeViewItem item)
+ {
+ var parent = VisualTreeHelper.GetParent(item);
+ while (!(parent is TreeViewItem || parent is TreeView))
+ {
+ parent = VisualTreeHelper.GetParent(parent);
+ }
+ return parent as TreeViewItem;
+ }
+ }
+ public class LeftMarginMultiplierConverter : IValueConverter
+ {
+ public double Length { get; set; }
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var item = value as TreeViewItem;
+ if (item == null)
+ return new Thickness(0);
+
+ return new Thickness(Length * item.GetDepth(), 0, 0, 0);
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new System.NotImplementedException();
+ }
+ }
+}