2009-08-04 5 views
8

Ich habe ein Canvas erstellt, und darin habe ich ein StackPanel platziert. Das StackPanel ist horizontal und akzeptiert eine Liste von Thumbnail-Bildern. Der Canvas hat eine feste Größe. Wenn ich mehr Thumbnails einstelle, als die Canvas-Breite halten kann, sollte das StackPanel aus dem Canvas-Bereich überlaufen, sodass ich es so verschieben kann, dass es die aktuelle Miniaturansicht zentriert.Silverlight: Canvas überläuft

Alles funktioniert nur, der Überlauf des StackPanels ist sichtbar! Gibt es eine Möglichkeit, es zu verstecken? Oder ist die gesamte Vorgehensweise falsch?

Hier ist ein Screenshot. Die Leinwand ist die rote Box. Das Stackpanel ist blau halbtransparent.

http://www.netpalantir.it/static/sl_canvas_overflows.jpg

Dank!

Antwort

20

Da Canvas eine feste Größe hat, können Sie clipping verwenden. Grundsätzlich müssen Sie tun:

<Canvas Width="400" Height="300"> 
    <Canvas.Clip> 
      <RectangleGeometry Rect="0, 0, 400, 300"/> 
    </Canvas.Clip> 
    <!-- your StackPanel here --> 
</Canvas> 

Hier sind einige nützliche Beiträge zum Thema:

Clipping in Silverlight

Cropping or Clipping in Silverlight

+0

Das ist genau das, was ich brauchte, vielen Dank! :) – Palantir