Пример #1
0
        public SplineKeyFrameConfigUi(SplineKeyFrame splineKeyFrameConfigModel)
        {
            SplineKeyFrameConfigModel = splineKeyFrameConfigModel;
            InitializeComponent();

            DataContext = SplineKeyFrameConfigModel;
            SplineKeyFrameConfigModel.PropertyChanged +=
                (sender, args) => ConfigEasingFunctionChanged?.Invoke(this, EventArgs.Empty);
        }
Пример #2
0
        /// <summary>
        /// 反射以增加Ui配置项
        /// </summary>
        private void CreateUi()
        {
            if (Container.Children.Count > 1)
            {
                Container.Children.RemoveRange(1, Container.Children.Count);
            }

            var properties = EasingFunctionBase.GetType()
                             .GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);

            foreach (var propertyInfo in properties)
            {
                var grid = new Grid {
                    Margin = new Thickness(5, 0, 5, 0)
                };
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    MinWidth = 100, Width = GridLength.Auto
                });
                grid.ColumnDefinitions.Add(new ColumnDefinition());

                var label = new Label {
                    Content = propertyInfo.Name, HorizontalAlignment = HorizontalAlignment.Right
                };
                Grid.SetColumn(label, 0);
                grid.Children.Add(label);

                var integerUpDown = new IntegerUpDown {
                    VerticalAlignment = VerticalAlignment.Center, MinWidth = 100
                };
                var binding = new Binding(propertyInfo.Name)
                {
                    Mode = BindingMode.TwoWay,
                    UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
                };
                integerUpDown.SetBinding(IntegerUpDown.ValueProperty, binding);
                Grid.SetColumn(integerUpDown, 1);
                grid.Children.Add(integerUpDown);

                integerUpDown.ValueChanged += (sender, args) =>
                {
                    ConfigEasingFunctionChanged?.Invoke(this, EventArgs.Empty);
                };

                Container.Children.Add(grid);
            }
        }
Пример #3
0
 private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     ConfigEasingFunctionChanged?.Invoke(this, EventArgs.Empty);
 }