OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/psychlops/silverlight
[psychlops/silverlight.git] / dev4 / psychlops / extention / standard / widget.cs
index 9d5a71c..42e7668 100644 (file)
@@ -8,6 +8,7 @@ using System.Windows.Media.Animation;
 using System.Windows.Media.Imaging;\r
 using System.Windows.Shapes;\r
 using System.Windows.Browser;\r
+using System.Windows.Data;\r
 \r
 \r
 \r
@@ -256,8 +257,30 @@ namespace Psychlops
                {\r
                        internal delegate void VoidString(string s);\r
                        internal delegate void VoidStringObject(String s, System.Object o);\r
-                       \r
 \r
+                       public class Double02fFormatter : IValueConverter\r
+                       {\r
+                               public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)\r
+                               {\r
+                                       string formatString = parameter as string;\r
+                                       if (!string.IsNullOrEmpty(formatString))\r
+                                       {\r
+                                               return string.Format(culture, formatString, value);\r
+                                       }\r
+                                       return string.Format("{0, -8:F}", value);\r
+                               }\r
+                               public object ConvertBack(object val, Type targetType, object parameter, System.Globalization.CultureInfo culture)\r
+                               {\r
+                                       string str = val.ToString();\r
+                                       double result;\r
+                                       var objCultureInfo = new System.Globalization.CultureInfo("en-US");\r
+                                       if (Double.TryParse(str, System.Globalization.NumberStyles.Number, objCultureInfo, out result))\r
+                                       {\r
+                                               return result;\r
+                                       }\r
+                                       return val;\r
+                               }\r
+                       }\r
 \r
                        delegate void StackSlider_(Slider s);\r
                        internal static void stackSlider(Slider s)\r
@@ -276,7 +299,7 @@ namespace Psychlops
                                var val = new System.Windows.Controls.TextBox { Width = 100 };\r
                                System.Windows.Controls.Canvas.SetLeft(val, 100);\r
                                var slide = new System.Windows.Controls.Slider {\r
-                                               Minimum = ss.range.begin.val, Maximum = ss.range.end.val,\r
+                                               Minimum = ss.range.begin.value, Maximum = ss.range.end.value,\r
                                                Name = ss.label,\r
                                                Value = ss.retval,\r
                                                Tag = ss, Width = 200,\r
@@ -286,6 +309,7 @@ namespace Psychlops
                                                Path = new PropertyPath("Value"),\r
                                                Mode = System.Windows.Data.BindingMode.TwoWay,\r
                                                Source = slide,\r
+                                               Converter = new Double02fFormatter()\r
                                };\r
                                val.SetBinding(TextBox.TextProperty, b);\r
                                ss.uislider = slide;\r
@@ -293,6 +317,7 @@ namespace Psychlops
                                val.Background = Color.null_color;\r
                                val.BorderBrush = Color.null_color;\r
                                val.Foreground = Color.white;\r
+                               val.TextAlignment = TextAlignment.Right;\r
 \r
                                holder.Background = Slider.bgcolor;\r
 \r