Esempio n. 1
0
        private void CreateValueReverserSurfaceItem(Dictionary <string, FixtureReference> fixtureReferences, Grid page,
                                                    XElement xeSurfaceItem, out ValueReverserSurfaceItem reverserSurfaceItem)
        {
            List <DmxBinding> reverseTargets = new List <DmxBinding>();

            var    xaName = xeSurfaceItem.Attribute("name");
            string name   = "";

            if (xaName != null)
            {
                name = xaName.Value;
            }

            var xeTargets = xeSurfaceItem.Element("Targets");

            foreach (var xeTarget in xeSurfaceItem.Elements("Target"))
            {
                try
                {
                    // <Target ref-id="lyre9_pan" ref-fixture="lyre2" inputNum="1"/>
                    string refId            = xeTarget.Attribute("ref-id").Value;
                    int    hackBindingIndex = int.Parse(xeTarget.Attribute("hackBindingIndex").Value);


                    var uc = page.FindName(refId) as VerticalSlider; // TODO : aad management of other control ex:Joystick !
                    if (uc == null)
                    {
                        continue;
                    }
                    var ssi = uc.DataContext as SliderSurfaceItem; // on recupere le SliderSurfaceItem attaché au slider
                    if (ssi == null)
                    {
                        continue;
                    }

                    if (ssi.DmxBindings.Count < hackBindingIndex + 1)
                    {
                        continue;
                    }

                    var binding = ssi.DmxBindings[hackBindingIndex];
                    reverseTargets.Add(binding);
                }
                catch (Exception ex)
                {
                    throw new Exception($"Invalid '{xeTarget.ToString()}' element in '{xeSurfaceItem.ToString()}'");
                }
            }

            reverserSurfaceItem = new ValueReverserSurfaceItem(name, reverseTargets);

            var xaImg = xeSurfaceItem.Attribute("img");

            if (xaImg != null)
            {
                reverserSurfaceItem.ImageResourceName = xaImg.Value;
            }
        }
 void OnOffButton_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
 {
     this.brSurfaceItem = args.NewValue as ValueReverserSurfaceItem;
     if (this.brSurfaceItem != null && !string.IsNullOrEmpty(this.brSurfaceItem.ImageResourceName))
     {
         imgPushArea.Background = Application.Current.Resources[this.brSurfaceItem.ImageResourceName] as Brush;
         imgPushArea.Visibility = Visibility.Visible;
     }
 }