0

この依存関係プロパティを定義するカスタム パネルがあります。

public static readonly DependencyProperty DragPositionProperty =
    DependencyProperty.Register(
    "DragPosition",
    typeof(Point),
    typeof(LogViewHeaderPanel),
    new FrameworkPropertyMetadata(
        new Point(),
        FrameworkPropertyMetadataOptions.AffectsParentArrange
    )
);

注: FrameworkPropertyMetadataOptions.AffectsArrange も試しました...

その LogViewHeaderPanel は、LogViewHeader と呼ばれるカスタム ItemsControl のパネルです。その項目は、ColumnHeader 型です。マウスが移動し、LogViewHeader 内で他のいくつかの条件が満たされるたびに、ターゲットの ColumnHeader には、次のコードを使用してプロパティ セットが設定されます。

_currentlyActiveColumnHeader.SetValue(
    LogViewHeaderPanel.DragPositionProperty,
    new Point(suggestedXPosition, originalPosition.Y)
);

LogViewHeaderPanel.ArrangeOverride のオーバーライドにブレークポイントを設定すると、LogViewHeader が作成/サイズ変更されたときに呼び出されますが、DragPosition プロパティがその子に設定されているときには呼び出されません。

プロパティが設定されているときに、FrameworkPropertyMetadataOptions.AffectsParentArrange パラメーターがアレンジをトリガーしないのはなぜですか?

4

1 に答える 1