カスタムコントロールのISrollInfoインターフェイスの実装に取り組んでいます。簡単に言うと、Canvasの下のカスタムコントロールにラベルがあります。カスタムコントロールをスクロールしたときに、ラベルを「所定の位置にとどまる」ようにします。つまり、スクロールオフセットに関係なく、ラベルは常に表示される必要があります。
ここで、テストとしてこのサンプルコードを追加しました
protected override Size MeasureOverride(Size constraint)
{
return new Size(1000, 50);
}
protected override Size ArrangeOverride(Size arrangeBounds)
{
double x = 50;
double y = 50;
label1.Arrange(new Rect(new Point(x, y), new Size(1000, 50)));
return arrangeBounds;
}
コントロールをテストすると(コントロールはScrollViewer内に配置されます)、ラベルは非表示になります(スクロールバーを使用する前後)。ArrangeOverrideのオーバーライドを削除すると、スクロールバーを使用しているときにラベルが表示され、スクロールします。
私が欠けているものについて何かアイデアはありますか?