ScreenToGif/Controls/PuncturedRect.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
namespace ScreenToGif.Controls
{
/// <summary>
/// PuncturedRectangle class.
/// </summary>
public class PuncturedRect : Shape
{
#region Dependency properties
public static readonly DependencyProperty InteriorProperty = DependencyProperty.Register("Interior", typeof(Rect), typeof(FrameworkElement),
new FrameworkPropertyMetadata(new Rect(0, 0, 0, 0), FrameworkPropertyMetadataOptions.AffectsRender, null, CoerceRectInterior, false), null);
public static readonly DependencyProperty ExteriorProperty = DependencyProperty.Register("Exterior", typeof(Rect), typeof(FrameworkElement),
new FrameworkPropertyMetadata(new Rect(0, 0, double.MaxValue, double.MaxValue),
FrameworkPropertyMetadataOptions.AffectsMeasure |
FrameworkPropertyMetadataOptions.AffectsArrange |
FrameworkPropertyMetadataOptions.AffectsParentMeasure |
FrameworkPropertyMetadataOptions.AffectsParentArrange |
FrameworkPropertyMetadataOptions.AffectsRender,
null, null, false), null);
public Rect Interior
{
get { return (Rect)GetValue(InteriorProperty); }
set { SetValue(InteriorProperty, value); }
}
public Rect Exterior
{
get { return (Rect)GetValue(ExteriorProperty); }
set { SetValue(ExteriorProperty, value); }
}
#endregion
private static object CoerceRectInterior(DependencyObject d, object value)
{
var pr = (PuncturedRect)d;
var rcExterior = pr.Exterior;
var rcProposed = (Rect)value;
if (rcExterior.Width <= 0 || rcExterior.Height <= 0)
return rcExterior;
var left = Math.Max(rcProposed.Left, rcExterior.Left);
var top = Math.Max(rcProposed.Top, rcExterior.Top);
var width = Math.Min(rcProposed.Right, rcExterior.Right) - left;
var height = Math.Min(rcProposed.Bottom, rcExterior.Bottom) - top;
return new Rect(left, top, width, height);
}
#region Override
protected override Geometry DefiningGeometry
后面还有 31 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
