Wie kann ich ein Element außerhalb des Behälters malen?
Frage
Ich versuche Elemente außerhalb der Grenzen ihrer Mutterplatte, in diesem Fall ich bin mit einem Stack-Panel.
machen zu bekommen<StackPanel ClipToBounds="False" Width="200" Orientation="Horizontal" Height="50"
Background="{DynamicResource TierBackground}">
<Rectangle ClipToBounds="False" VerticalAlignment="Bottom" Width="25" Height="75"
Fill="#FF4D6072" />
</StackPanel>
ClipToBounds
Einstellung scheint nicht, etwas zu tun, ich versuchte es zuerst auf dem Rectangle
und dann auf dem übergeordneten Gremium obwohl weder schien zu helfen.
UPDATE
Es erscheint der Canvas
Container ehrt die ClipToBounds
Eigenschaft, aber keine anderen Behälter scheint dies zu ehren.
UPDATE
Ich habe ein Bild enthalten, was ich zu erreichen bin versucht. Die braunen Bereichen die inneren Stapelplatten sind, die innerhalb der übergeordneten Stapelplatte gruppiert sind, sehen, wie die graue Kästen (Produktpositionierung darstellt) erstrecken sich über den übergeordneten Container und Deckel Mutterprodukt aus Ebenen oben.
Dies wurde mehrere Leinwand erreicht, um innerhalb eines übergeordneten StackPanel
gestapelt mit Kind Produktelementen auf 0 ihre Canvas.Bottom
Eigenschaft festgelegt, während das es funktioniert bedeutet, dass ich jedes Produkt Elemente ‚Left‘ Eigenschaft setzen und kann das nicht habe Layout-Position automatisch das Produkt.
StackPanels http://img263.imageshack.us/ img263 / 8682 / stackpanels.jpg
Lösung
Sie können die Wiedergabe steuern, indem die Margin-Eigenschaft festlegen. Zum Beispiel setzen Sie sich auf negativen Wert so Rechteck außerhalb des Stackpanel gemalt wird:
<Rectangle ClipToBounds="False" VerticalAlignment="Bottom" Width="25" Height="75"
Margin="-50,-50,0,0"
Fill="#FF4D6072" />
EDIT:
Hier ist ein Beispiel für die Verwendung von Margin-Eigenschaft etwas ähnliches, um Ihren Fall zu erzeugen:
http://img139.imageshack.us/img139/8357/rectangleoutsidepanel.gif
<Window x:Class="RectangleOutsidePanel.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<DockPanel LastChildFill="False">
<StackPanel Background="LightBlue" Height="50" DockPanel.Dock="Top"/>
<StackPanel Orientation="Horizontal" Height="50" Background="Brown" DockPanel.Dock="Top">
<Rectangle
VerticalAlignment="Bottom" Width="30" Height="75" Margin="5,-500,5,0"
Fill="#FF4D6072" />
<Rectangle
VerticalAlignment="Bottom" Width="25" Height="80" Margin="5,-500,5,0"
Fill="#FF4D6072" />
</StackPanel>
</DockPanel>
</Grid>
</Window>
Beachten Sie den Trick beliebig große negative Zahl für Margin verwenden, so dass Sie es nicht berechnen müssen.