Als eine schnelle Überprüfung gegen die normale 'Gotcha' haben Sie explizit die Leinwand Höhe/Breite Eigenschaften?
Wenn ich einige XAML zu Testzwecken klopfen und führen Sie es:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas x:Name="test" Background="Beige">
<TextBlock Canvas.Left="2000" Canvas.Top="200" Text="test"/>
</Canvas>
</ScrollViewer>
nicht eine Bildlaufleiste zeigen werden, auch wenn ich die Leinwand Breite nicht explizit Inhalt in der Leinwand 2000 auf der linken Seite erstellt haben, gesetzt zu sein bedeutet, dass der Scroll-Viewer keine Reichweite hat, um sozusagen zu binden. Die Leinwand ohne Breite ist nur unendlich weit von dem, was ich sehen kann. Dies ist zwar nicht dasselbe wie das Ziehen des Konzepts, ein Stück Inhalt außerhalb der aktuellen Ansicht zu platzieren.
Sobald Sie eine Breite hinzufügen, wird ein endlicher Bereich zum Scrollen definiert und die Bildlaufleiste wird angezeigt.
Also im Grunde gibt es keinen Punkt umgekehrt diese Ausnahme um eine feste Leinwandgröße zu behalten? – Fredrick
Sie könnten es auf andere Weise umgehen, aber eine nicht verknüpfte Bildlaufleiste einfügen und den Wert in der Bildlaufleiste mit einer Übersetzungsumwandlung verknüpfen, die als Teil der Transformationsgruppe auf der Zeichenfläche angewendet wird. (Eine Transformationsgruppe, die mehrere Transformationen zulässt.) Auf diese Weise können Sie ohne eine explizite Leinwandgröße scrollen, und die Grenze des Scrolls wird dann durch die Werte festgelegt, die Sie für die Leiste/Transformation verwendet haben. – Andrew