Ich habe mehrere Expander-Steuerelemente in einer wpf-Benutzersteuerung. Wenn ich die Expander erweitern möchte ich automatisch scrollen, so dass der gesamte Expander sichtbar ist, wenn möglich. Zumindest ist der Expander so weit oben wie möglich.Wie scrolle ich, so dass ein Steuerelement nach dem Expandieren sichtbar ist?
Wenn ich es jetzt auf der Unterseite mache, dehnt es sich unter der Fensterkante aus und ich kann die Kontrollen im Expander nicht sehen, ohne manuell zu ihnen zu scrollen.
Und ich möchte dies von XAML und nicht das Codebehind tun. Ist das möglich? Ich verwende ein MVVM-Muster.
Im vorausgesetzt, dass ich einen Trigger auf der Expander verwenden müssen, aber ich habe keine Ahnung, wie die BringToView Funktionalität
Highlevel Layout Preform:
<ScrollViewer>
<UserControl>
<Grid>
<Expander>
...
</Expander>
<Expander>
...
</Expander>
<Expander>
...
</Expander>
</Grid>
</UserControl>
</ScrollViewer>
Ich versuchte dies und es funktionierte. Aber nicht so, dass ich es geschafft habe :) Ich bin neu bei WPF, also ertragen Sie mit mir. Wo finde ich die ExpanderEx-Klasse, damit ich sie in vielen Ansichten wiederverwenden kann? Als ich es versuchte, musste ich die Klasse in das gleiche Projekt wie die Ansicht UND in die Ansicht codebehind setzen ... das kann nicht richtig sein ... – merger
wählen Sie nach Ihrer Vorliebe. Es ist eine separate statische Klasse. B. Erstellen Sie eine Datei ** extensions.cs ** und legen Sie dort Ihre Erweiterungen ab. Wichtig ist, dass Sie [XAML-Namespace-Deklarationen] (https://msdn.microsoft.com/en-us/library/ms747086 (v = vs.110) .aspx) richtig festlegen. – Ron
Ich hatte es in einer statischen Klasse. Ich glaube, ich habe etwas falsch gemacht, als ich es vorher getestet habe. Jetzt habe ich die Klasse in ein gemeinsames Projekt verschoben und VS den Namespace-Verweis in der XAML-Datei erstellen lassen, neu kompiliert und es hat funktioniert! Danke, dein Kommentar hat mich dazu gebracht, dasselbe auf eine andere Art zu versuchen und das hat es funktioniert :) – merger