コンテンツにスキップ

RenderProxyBox クラス

単一の子へレイアウト、描画、ヒットテストを委譲するRenderBoxの基底クラスです。

名前空間: FloatSoda.RenderObjects
アセンブリ: FloatSoda.dll

public abstract class RenderProxyBox : RenderBox, IHitTestTarget, IHasSingleChildRenderObject

object ← RenderObject ← RenderBox ← RenderProxyBox

RenderAbsorbPointer, RenderAnimatedOpacity, RenderAspectRatio, RenderColoredBox, RenderConstrainedBox, RenderConstraintsTransformBox, RenderCustomClip<T>, RenderDecoratedBox, RenderFittedBox, RenderIgnorePointer, RenderIntrinsicHeight, RenderIntrinsicWidth, RenderLimitedBox, RenderOffstage, RenderOpacity, RenderPadding, RenderPointerListener, RenderRepaintBoundary, RenderRotatedBox, RenderTransform

IHitTestTarget, IHasSingleChildRenderObject

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()

子を持たないRenderProxyBoxを初期化します。

protected RenderProxyBox()

レイアウト、描画、ヒットテストを委譲する子を取得または設定します。

public RenderBox? Child { get; set; }

RenderBox?

値を設定すると旧子をレンダーツリーから取り外し、新しい子を組み込みます。 その過程でこのRenderObjectがレイアウトDirtyになり、次のパイプライン更新時にサイズが再計算されます。

このRenderProxyBoxと子を指定した描画パイプラインへ接続します。

public override void Attach(RenderPipeline? owner)

owner RenderPipeline?

接続先のパイプライン。パイプラインを関連付けずに接続する場合はnullです。

自身に対するDirty状態の再登録後、同じ接続先を子へ伝播します。

派生型固有の最大intrinsic高さを計算します。

protected override double ComputeMaxIntrinsicHeight(double width)

width double

double

派生型固有の最大intrinsic幅を計算します。

protected override double ComputeMaxIntrinsicWidth(double height)

height double

double

派生型固有の最小intrinsic高さを計算します。

protected override double ComputeMinIntrinsicHeight(double width)

width double

double

派生型固有の最小intrinsic幅を計算します。

protected override double ComputeMinIntrinsicWidth(double height)

height double

double

このRenderProxyBoxと子を描画パイプラインから切り離します。

public override void Detach()

指定したローカル座標が子にヒットするかを判定します。

public override bool HitTestChildren(HitTestResult result, Offset position)

result HitTestResult

ヒットした子を追加する結果。

position Offset

このRenderProxyBoxのローカル座標系における判定位置。

bool

子が存在してヒットした場合はtrue、それ以外の場合はfalseです。

子を指定した位置へ描画します。

public override void Paint(PaintingContext context, Offset offset)

context PaintingContext

描画命令と合成レイヤーを記録するコンテキスト。

offset Offset

親の座標系における描画原点。

子が存在しない場合は何も記録しません。

子を現在の制約でレイアウトし、そのサイズを自身へ反映します。

public override void PerformLayout()

子が存在しない場合は、現在の制約で許される最小サイズを使用します。

保持している子とその子孫の深さを更新します。

public override void RedepthChildren()

子へボックス配置用の親データを割り当てます。

public override void SetupParentData(RenderObject child)

child RenderObject

このRenderProxyBoxへ組み込む子。

保持している子に処理を適用します。

public override void VisitChildren(Action<RenderObject> visitor)

visitor Action<RenderObject>

子が存在する場合に一度適用する処理。