Ich habe einen WPF ScrollViewer, und ich möchte zum ScrollContentPresenter seiner Vorlage gelangen.WPF-Referenz ScrollContentPresenter von ScrollViewer Vorlage
1
A
Antwort
0
Wenn Sie die Scroll eines Scroll bekommen möchten, können Sie ein ControlTemplate
<ScrollViewer Style="{StaticResource LeftScrollViewer}"/>
<Style x:Key="LeftScrollViewer" TargetType="{x:Type ScrollViewer}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter Grid.Column="1"/>
<ScrollBar Name="PART_VerticalScrollBar"
Value="{TemplateBinding VerticalOffset}"
Maximum="{TemplateBinding ScrollableHeight}"
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
<ScrollBar Name="PART_HorizontalScrollBar"
Orientation="Horizontal"
Grid.Row="1"
Grid.Column="1"
Value="{TemplateBinding HorizontalOffset}"
Maximum="{TemplateBinding ScrollableWidth}"
ViewportSize="{TemplateBinding ViewportWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
0
Anstatt zu versuchen, den Baum von Scroll verwenden zu gehen, vielleicht wollen Sie Bind etwas aus dem Inhalt bis?
Etwas wie:
<Grid Width={Binding Path=ActualWidth RelativeBinding={RelativeBinding FindAncestor, AncestorType={x:Type ScrollContentPresenter}}}>
Hinweis: Das Syntax nicht zu 100% richtig sein könnte, dann ist es aus der Spitze von meinem Kopf
Verwandte Themen
- 1. WPF - ScrollViewer mit festen Header/Zeile
- 2. xaml ScrollViewer in ScrollViewer
- 3. WPF ScrollViewer von TreeView entfernen
- 4. Silverlight Scrollviewer mit nur Schaltflächen
- 5. ScrollViewer ignoriert ContentTemplateSelector
- 6. WPF: ListView innerhalb von Scrollviewer; Layout Frage
- 7. Verwenden von ScrollViewer in einem FlipView
- 8. ScrollViewer ContentScroll fehlt
- 9. Animieren (reibungslos) ScrollViewer programmgesteuert
- 10. ScrollViewer nicht scrollen
- 11. ScrollViewer-Bildlauf verhindern
- 12. WPF - benutzerdefinierte Steuerung ScrollViewer
- 13. Wpf ScrollViewer Scroll-Betrag
- 14. ItemsControl, VirtualizingStackPanel und ScrollViewer Höhe
- 15. UWP: ScrollViewer in einem ItemsPanel
- 16. ScrollViewer wird nicht richtig angezeigt?
- 17. Ich kann Rollbalken auf ScrollViewer
- 18. Scrollviewer & SIP-Ausgabe (WP7.5 Mango)
- 19. VirtualizationStackPanel funktioniert nicht mehr beim Überschreiben der Standardsteuerelementvorlage für ScrollViewer
- 20. TextBox Vorlage Polsterung Problem
- 21. ScrollViewer scrollt zurück auf WP7
- 22. C# WPF - ScrollViewer + TextBlock Probleme
- 23. ScrollViewer funktioniert nicht mit Rasterspalten
- 24. ScrollViewer mit benutzerdefinierten Stil scrollt nicht beim Ziehen
- 25. So legen Sie den Rand für Bildlaufleiste in Scrollviewer nur mit Xaml
- 26. ListBox in ScrollViewer einfügen: Mausrad funktioniert nicht
- 27. Hat ScrollViewer zwischen 8.1 und 10 gewechselt?
- 28. Einstellung der Scroll-Ausdehnung von ScrollViewer in WPF
- 29. ScrollViewer von einem ListView wird nicht in einem Trigger
- 30. WPF: Erhalten von AccessText in ScrollViewer zum Umbruch
Dies ist nicht ganz, was ich suche. Was ich tun muss, ist einen Verweis auf den ScrollContentPresenter eines vorhandenen ScrollViewers zu bekommen. Im Grunde brauche ich die ActualWidth von diesem ScrollContentPresenter bc Ich brauche eine Messung an den inneren Grenzen der ScrollBar. Was ich tun möchte, ist eine Referenz auf den ScrollContentPresenter durch (C#) Code. Vielleicht kann ich das mit dem VisualTreeHelper machen, oder irgendwie finde ich den ScrollContentPresenter durch die Vorlage des ScrollViewers. – BrandonS