当前位置: 首页>>代码示例>>C#>>正文


C# Rect.IsValid方法代码示例

本文整理汇总了C#中System.Windows.Rect.IsValid方法的典型用法代码示例。如果您正苦于以下问题:C# Rect.IsValid方法的具体用法?C# Rect.IsValid怎么用?C# Rect.IsValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Windows.Rect的用法示例。


在下文中一共展示了Rect.IsValid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetCurrentValueCore

      /// <summary/>
      protected override Rect GetCurrentValueCore(Rect baseFromValue, Rect baseToValue, AnimationClock animationClock) {
         var progress = animationClock.CurrentProgress;
         if (!progress.HasValue || Interpolator == null) {
            return base.GetCurrentValueCore(baseFromValue, baseToValue, animationClock);
         }

         var fromValue = new Rect();
         var toValue = new Rect();
         var offset = new Rect();
         var isValid = true;

         if (From.HasValue) {
            fromValue = From.Value;
            if (To.HasValue) {
               // from ... to 
               toValue = To.Value;
               if (IsAdditive) {
                  offset = baseFromValue;
                  isValid = offset.IsValid();
               }
            } else if (By.HasValue) {
               // from ... from+by
               toValue = _add(fromValue, By.Value);
               if (IsAdditive) {
                  offset = baseFromValue;
                  isValid = offset.IsValid();
               }
            } else {
               // from ... base
               toValue = baseToValue;
               isValid = toValue.IsValid();
            }
         } else if (To.HasValue) {
            // base ... to
            fromValue = baseFromValue;
            toValue = To.Value;
            isValid = fromValue.IsValid();
         } else if (By.HasValue) {
            // base ... base+by
            toValue = By.Value;
            offset = baseFromValue;
            isValid = offset.IsValid();
         } else {
            // base ... base
            fromValue = baseFromValue;
            toValue = baseToValue;
            isValid = fromValue.IsValid() && toValue.IsValid();
         }
         if (!isValid) {
            throw new InvalidOperationException("GetCurrentValueCore");
         }

         if (IsCumulative) {
            var iteration = animationClock.CurrentIteration;
            if (iteration.HasValue && iteration.Value > 1) {
               offset = _add(_multiply(_subtract(toValue, fromValue), iteration.Value - 1), offset);
            }
         }

         var interpolator = Interpolator ?? Interpolators.Linear;
         var result = _add(_add(fromValue, _multiply(_subtract(toValue, fromValue), interpolator(progress.Value, 0.0, 1.0))), offset);
         return result;
      }
开发者ID:borkaborka,项目名称:gmit,代码行数:64,代码来源:RectInterpolation.cs


注:本文中的System.Windows.Rect.IsValid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。