Example #1
0
        private void FloatingContainerLoaded(object sender, RoutedEventArgs e) {
            if (_fe.StartSize.HasValue) {
                _svi.SetBinding(WidthProperty,
                    new Binding {Source = _fe.StartSize.Value, Path = new PropertyPath("Width")});
                _svi.SetBinding(HeightProperty,
                    new Binding {Source = _fe.StartSize.Value, Path = new PropertyPath("Height")});
                //_svi.Width = _fe.StartSize.Value.Width;
                //_svi.Height = _fe.StartSize.Value.Height;
            }
            else {
                _svi.SetBinding(WidthProperty, new Binding {Source = _fe.Width, Path = new PropertyPath("Width")});
                _svi.SetBinding(HeightProperty, new Binding {Source = _fe.Height, Path = new PropertyPath("Height")});
                //if (_fe.Width > 0) _svi.Width = _fe.Width;
                //if (_fe.Height > 0) _svi.Height = _fe.Height;
            }

            if (_fe.OriginPosition.HasValue || _fe.OriginSize.HasValue) {
                var d = new Duration(_fe.AnimationSpeed);
                if (_fe.StartPosition != null) {
                    var pa = new StopHoldPointAnimation(_fe.StartPosition.Value, d, _svi, ScatterContentControlBase.CenterProperty) {
                            FillBehavior = FillBehavior.Stop,
                            From = _fe.OriginPosition
                        };
                    _svi.BeginAnimation(ScatterContentControlBase.CenterProperty, pa);
                }

                if (_fe.OriginSize.HasValue) {
                    var wa = new StopHoldDoubleAnimation(_fe.StartSize.Value.Width, d, _svi, WidthProperty)
                    {FillBehavior = FillBehavior.Stop, From = _fe.OriginSize.Value.Width};
                    _svi.BeginAnimation(WidthProperty, wa);

                    var ha = new StopHoldDoubleAnimation(_fe.StartSize.Value.Height, d, _svi, HeightProperty)
                    {FillBehavior = FillBehavior.Stop, From = _fe.OriginSize.Value.Height};
                    _svi.BeginAnimation(HeightProperty, ha);
                }
            }
            else {
                if (_fe.StartPosition.HasValue) _svi.Center = _fe.StartPosition.Value;
            }

            if (_fe.StartOrientation.HasValue) _svi.Orientation = _fe.StartOrientation.Value;

            //if (_fe.StartSize.HasValue)
            //{
            //  _svi.Width = _fe.StartSize.Value.Width;
            //  _svi.Height = _fe.StartSize.Value.Height;
            //}
            //else
            //{
            //  if (_fe.Width > 0) _svi.Width = _fe.Width;
            //  if (_fe.Height > 0) _svi.Height = _fe.Height;
            //}

            try {
                if (_fe.MinSize.HasValue) {
                    if (!double.IsNaN(_fe.MinSize.Value.Width)) _svi.MinWidth = _fe.MinSize.Value.Width;
                    if (!double.IsNaN(_fe.MinSize.Value.Height)) _svi.MinHeight = _fe.MinSize.Value.Height;
                }

                if (_fe.MaxSize.HasValue) {
                    _svi.MaxWidth = _fe.MaxSize.Value.Width;
                    _svi.MaxHeight = _fe.MaxSize.Value.Height;
                }
            }
            catch (Exception) {
                Logger.Log("FrameworkContainer", "Error setting min/max size", "", Logger.Level.Error);
            }

            _svi.SetBinding(OpacityProperty, new Binding {Source = _fe, Path = new PropertyPath("OpacityNormal")});
        }
Example #2
0
        private void Animate(Point center, double width, double height, double orientation, double duration) {
            var pa = new StopHoldPointAnimation(center,
                new Duration(TimeSpan.FromMilliseconds(duration)),
                _svi, ScatterContentControlBase.CenterProperty);

            _svi.BeginAnimation(ScatterContentControlBase.CenterProperty, pa);

            var wa = new StopHoldDoubleAnimation(width,
                new Duration(TimeSpan.FromMilliseconds(duration)),
                _svi, WidthProperty);

            _svi.BeginAnimation(WidthProperty, wa);

            var ha = new StopHoldDoubleAnimation(height,
                new Duration(TimeSpan.FromMilliseconds(duration)),
                _svi, HeightProperty);

            _svi.BeginAnimation(HeightProperty, ha);

            var oa = new StopHoldDoubleAnimation(orientation,
                new Duration(TimeSpan.FromMilliseconds(duration)),
                _svi, ScatterContentControlBase.OrientationProperty);

            _svi.BeginAnimation(ScatterContentControlBase.OrientationProperty, oa);
        }