RenderCustomClip<T> クラス
子の描画を任意の形状で切り抜くRenderObjectの基底クラスです。
名前空間: FloatSoda.RenderObjects.Painting
アセンブリ: FloatSoda.dll
public abstract class RenderCustomClip<T> : RenderProxyBox, IHitTestTarget, IHasSingleChildRenderObject型パラメーター
Section titled “型パラメーター”T
クリップ領域を表す型。
object ← RenderObject ← RenderBox ← RenderProxyBox ← RenderCustomClip<T>
実装するインターフェイス
Section titled “実装するインターフェイス”IHitTestTarget, IHasSingleChildRenderObject
継承したメンバー
Section titled “継承したメンバー”RenderProxyBox.Child, RenderProxyBox.SetupParentData(RenderObject), RenderProxyBox.PerformLayout(), RenderProxyBox.ComputeMinIntrinsicWidth(double), RenderProxyBox.ComputeMaxIntrinsicWidth(double), RenderProxyBox.ComputeMinIntrinsicHeight(double), RenderProxyBox.ComputeMaxIntrinsicHeight(double), RenderProxyBox.Paint(PaintingContext, Offset), RenderProxyBox.Attach(RenderPipeline?), RenderProxyBox.Detach(), RenderProxyBox.VisitChildren(Action<RenderObject>), RenderProxyBox.RedepthChildren(), RenderProxyBox.HitTestChildren(HitTestResult, Offset), RenderBox.Size, RenderBox.GetMinIntrinsicWidth(double), RenderBox.GetMaxIntrinsicWidth(double), RenderBox.GetMinIntrinsicHeight(double), RenderBox.GetMaxIntrinsicHeight(double), RenderBox.ComputeMinIntrinsicWidth(double), RenderBox.ComputeMaxIntrinsicWidth(double), RenderBox.ComputeMinIntrinsicHeight(double), RenderBox.ComputeMaxIntrinsicHeight(double), RenderBox.HitTest(HitTestResult, Offset), RenderBox.HitTestChildren(HitTestResult, Offset), RenderBox.HitTestSelf(Offset), RenderBox.HandleEvent(PointerEvent, HitTestEntry), RenderObject.Constraints, RenderObject.ParentData, RenderObject.Parent, RenderObject.Owner, RenderObject.Layer, RenderObject.Size, RenderObject.NeedsPaint, RenderObject.NeedsLayout, RenderObject.Depth, RenderObject.IsRepaintBoundary, RenderObject.Attached, RenderObject.RelayoutBoundary, RenderObject.SizedByParent, RenderObject.PerformLayout(), RenderObject.Layout(BoxConstraints, bool), RenderObject.LayoutWithoutResize(), RenderObject.CleanChildRelayoutBoundary(), RenderObject.MarkNeedsLayout(), RenderObject.MarkParentNeedsLayout(), RenderObject.Attach(RenderPipeline?), RenderObject.AdoptChild(RenderObject), RenderObject.RedepthChild(RenderObject), RenderObject.RedepthChildren(), RenderObject.VisitChildren(Action<RenderObject>), RenderObject.SetupParentData(RenderObject), RenderObject.Paint(PaintingContext, Offset), RenderObject.MarkNeedsPaint(), RenderObject.Detach(), RenderObject.DropChild(RenderObject), RenderObject.HandleEvent(PointerEvent, HitTestEntry), object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()
現在のサイズに対して有効なクリップ領域を取得します。
protected T Clip { get; }プロパティの値
Section titled “プロパティの値”T
Clipperの生成結果は、MarkNeedsClipが呼ばれるまで描画とヒットテストで共有します。
ポインターが動くたびのヒットテストでGetClipを呼び直さないためです。
ClipBehavior
Section titled “ClipBehavior”クリップ境界に適用する描画品質を取得または設定します。
public Clip ClipBehavior { get; set; }プロパティの値
Section titled “プロパティの値”Clip
値が変更された場合、このRenderObjectをPaint Dirtyとしてマークし、
次のパイプライン更新時に指定した品質で子を再描画します。
値が変更されなかった場合、Dirty状態は変更されません。
Noneの場合は、子を切り抜かずにそのまま描画します。
ヒットテストの結果はこの値に左右されません。判定に使う領域は、各派生型のHitTestの説明を参照してください。
Clipper
Section titled “Clipper”クリップ領域を生成するクリッパーを取得または設定します。
public CustomClipper<T>? Clipper { get; set; }プロパティの値
Section titled “プロパティの値”CustomClipper<T>?
クリッパーが追加または削除された場合、型が変わった場合、または新しいクリッパーが 再生成を要求した場合、このRenderObjectをPaint Dirtyとしてマークし、 次のパイプライン更新時にクリップ領域と子を再描画します。 同じクリッパーが設定された場合、またはクリップ領域を再利用できる場合、Dirty状態は変更されません。
DefaultClip
Section titled “DefaultClip”Clipperが未設定のときに使用する既定のクリップ領域を取得します。
protected abstract T DefaultClip { get; }プロパティの値
Section titled “プロパティの値”T
MarkNeedsClip()
Section titled “MarkNeedsClip()”このRenderObjectをPaint Dirtyとしてマークし、次のパイプライン更新時にクリップ領域を再計算します。
protected void MarkNeedsClip()PerformLayout()
Section titled “PerformLayout()”子を現在の制約でレイアウトし、そのサイズを自身へ反映します。
public override void PerformLayout()子が存在しない場合は、現在の制約で許される最小サイズを使用します。