private void LightTypeSelection_SelectionChanged()

in SamplesCommon/SamplesCommon/LightControl.xaml.cs [125:204]


        private void LightTypeSelection_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBoxItem item = LightTypeSelection.SelectedValue as ComboBoxItem;
            LightTypes lightType = (LightTypes)item.Tag;

            switch (lightType)
            {
                case LightTypes.PointLight:
                    XOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    YOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    ZOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    ConstantAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    LinearAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    QuadraticAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    InnerConeRow.Height = CreateGridLength(0);
                    OuterConeRow.Height = CreateGridLength(0);
                    InnerConeColorRow.Height = CreateGridLength(0);
                    OuterConeColorRow.Height = CreateGridLength(0);
                    LightColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    DirectionXRow.Height = CreateGridLength(0);
                    DirectionYRow.Height = CreateGridLength(0);
                    break;

                case LightTypes.SpotLight:
                    XOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    YOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    ZOffsetRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    ConstantAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    LinearAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    QuadraticAttenuationRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    InnerConeRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    OuterConeRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    InnerConeColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    OuterConeColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    LightColorRow.Height = CreateGridLength(0);
                    DirectionXRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    DirectionYRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    break;

                case LightTypes.DistantLight:
                    XOffsetRow.Height = CreateGridLength(0);
                    YOffsetRow.Height = CreateGridLength(0);
                    ZOffsetRow.Height = CreateGridLength(0);
                    ConstantAttenuationRow.Height = CreateGridLength(0);
                    LinearAttenuationRow.Height = CreateGridLength(0);
                    QuadraticAttenuationRow.Height = CreateGridLength(0);
                    InnerConeRow.Height = CreateGridLength(0);
                    OuterConeRow.Height = CreateGridLength(0);
                    InnerConeColorRow.Height = CreateGridLength(0);
                    OuterConeColorRow.Height = CreateGridLength(0);
                    LightColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    DirectionXRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    DirectionYRow.Height = CreateGridLength(1, GridUnitType.Auto);
                    break;
                default:
                    break;
            }

            // Update UI for selected light type
            if (lightType == LightTypes.SpotLight)
            {
                InnerConeRow.Height = CreateGridLength(1, GridUnitType.Auto);
                OuterConeRow.Height = CreateGridLength(1, GridUnitType.Auto);
                InnerConeColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
                OuterConeColorRow.Height = CreateGridLength(1, GridUnitType.Auto);

                LightColorRow.Height = CreateGridLength(0);
            }
            else
            {
                InnerConeRow.Height = CreateGridLength(0);
                OuterConeRow.Height = CreateGridLength(0);
                InnerConeColorRow.Height = CreateGridLength(0);
                OuterConeColorRow.Height = CreateGridLength(0);

                LightColorRow.Height = CreateGridLength(1, GridUnitType.Auto);
            }

            UpdateLight();
        }