Ich erstelle ein Steuerelement für WPF, und ich habe eine Frage für Sie WPF Gurus da draußen.Verschachtelte Bildlaufbereiche
Ich möchte, dass meine Steuerung erweitert werden kann, um in ein Fenster mit veränderbarer Größe zu passen.
In meiner Kontrolle habe ich ein Listenfeld, das ich mit dem Fenster erweitern möchte. Ich habe auch andere Steuerelemente um das Listenfeld (Schaltflächen, Text usw.).
Ich möchte eine Mindestgröße für mein Steuerelement festlegen, aber ich möchte, dass das Fenster kleiner sein kann, indem Sie Bildlaufleisten zum Anzeigen des Steuerelements erstellen.
Dadurch werden verschachtelte Bildlaufbereiche erstellt: Einer für das Listenfeld und ein ScrollViewer, der das gesamte Steuerelement einhüllt.
Jetzt, wenn das Listenfeld auf automatische Größe eingestellt ist, wird es nie eine Bildlaufleiste haben, da es immer innerhalb ScrollViewer in voller Größe gezeichnet wird.
Ich möchte nur das Steuerelement scrollen, wenn der Inhalt nicht kleiner werden kann, sonst möchte ich nicht das Steuerelement scrollen; Stattdessen möchte ich das Listenfeld innerhalb des Steuerelements scrollen.
Wie kann ich das Standardverhalten der ScrollViewer-Klasse ändern? Ich habe versucht, von der ScrollViewer-Klasse zu erben und die MeasureOverride- und ArrangeOverride-Klassen zu überschreiben, aber ich konnte nicht herausfinden, wie man das Kind richtig misst und anordnet. Es scheint, dass das Arrangement irgendwie den ScrollContentPresenter beeinflussen muss, nicht das eigentliche Inhaltskind.
Jede Hilfe/Vorschläge würde sehr geschätzt werden.
Große Frage. Wir sind selbst auf ein sehr ähnliches Problem gestoßen. – cplotts