none
ListBox ausßerhalb des Grid RRS feed

  • Frage

  • Folgender Sachverhalt:

    <Border>
    <Grid>
    <ListBox>
    </>
    </>
    </>

    In dieser Art kann die Höhe der ListBox nicht höher als die Höhe des Border sein.

    Wie ist es möglich das die ListBox größer als das Border sein kann?


    Es geht mir um WPF(XAML) Visual Studio Proff. 2010, VisualBasic, Win7 und verständliche Hilfe. Als Quelle nutze ich oft msdn Hilfe.

    Montag, 9. Juli 2012 20:33

Antworten

  • Hallo Thomas,

    grundsätzlich gilt, dass Container (Panel, Grid) die Grenzen vorgeben, was ja auch i. a. gewollt ist.

    Eine Ausnahme ist Canvas, was bei ClipToBounds=false ein Überschreiben seiner Grenzen erlaubt:

        <Border BorderThickness="1" BorderBrush="red">
            <Canvas Height="50">
                <ListBox ClipToBounds="false">
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item2</ListBoxItem>
                    <ListBoxItem>Item3</ListBoxItem>
                    <ListBoxItem>Item4</ListBoxItem>
                    <ListBoxItem>Item5</ListBoxItem>
                    <ListBoxItem>Item6</ListBoxItem>
                    <ListBoxItem>Item7</ListBoxItem>
                    <ListBoxItem>Item8</ListBoxItem>
                </ListBox>
            </Canvas>
        </Border>
    

    (sieht schnell scheußlich aus, aber wenn mans braucht ;-)

    Siehe auch: Übersicht über Panel-Elemente und dort den Abschnitt "ClipToBounds innerhalb eines Canvas".

    Gruß Elmar

    • Als Antwort markiert Thomas2705 Sonntag, 15. Juli 2012 19:13
    Donnerstag, 12. Juli 2012 23:46

Alle Antworten

  • Hallo,

    indem du die Margin-Eigenschaft festlegst.

            <Border Height="100" Width="100">
                <Button Margin="-50"></Button>
            </Border>

    Koopakiller - http://koopakiller.ko.ohost.de/

    Dienstag, 10. Juli 2012 12:03
    Moderator
  • Hallo,

    ClipToBounds="True"

    verhindert das Überschreiben!

    Grüße


    • Bearbeitet P.Arnold Dienstag, 10. Juli 2012 12:24
    Dienstag, 10. Juli 2012 12:23
  • Zunächst vielen Dank für EUre wenn auch nicht hilfreichen ANtworten. Vielleicht habe ich das Problem nicht klar beschrieben:

    <Grid>
            <Border BorderThickness="1" BorderBrush="red" Margin="100,100,100,183">
                <Grid>
                    <ListBox Height="100">
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item1</ListBoxItem>
                    </ListBox>
                </Grid>                        
            </Border>        
         </Grid>

    In fast der Mitte des Fensters habe ich ein Border.

    Um innerhalb des Borders als Schmuckelement zwei Elemente zu plazieren, nahm ich im Border ein weiteres Grid. Innerhalb des GRid befindet sic eine Liste.

    Die Anzahl der Listenwerte werden nicht in die Größe des Borders passen. Beim Ereignis zum Bsp. click wird sich die Liste auf die Anzahl der darin befindlichen Werte öffnen.

    Allerdings kommt meine sichtbare Liste nicht über das Grid begrenzende Grid hinaus. Das ist das Problem.

     


    Es geht mir um WPF(XAML) Visual Studio Proff. 2010, VisualBasic, Win7 und verständliche Hilfe. Als Quelle nutze ich oft msdn Hilfe.

    Donnerstag, 12. Juli 2012 19:12
  • Hallo Thomas,

    grundsätzlich gilt, dass Container (Panel, Grid) die Grenzen vorgeben, was ja auch i. a. gewollt ist.

    Eine Ausnahme ist Canvas, was bei ClipToBounds=false ein Überschreiben seiner Grenzen erlaubt:

        <Border BorderThickness="1" BorderBrush="red">
            <Canvas Height="50">
                <ListBox ClipToBounds="false">
                    <ListBoxItem>Item1</ListBoxItem>
                    <ListBoxItem>Item2</ListBoxItem>
                    <ListBoxItem>Item3</ListBoxItem>
                    <ListBoxItem>Item4</ListBoxItem>
                    <ListBoxItem>Item5</ListBoxItem>
                    <ListBoxItem>Item6</ListBoxItem>
                    <ListBoxItem>Item7</ListBoxItem>
                    <ListBoxItem>Item8</ListBoxItem>
                </ListBox>
            </Canvas>
        </Border>
    

    (sieht schnell scheußlich aus, aber wenn mans braucht ;-)

    Siehe auch: Übersicht über Panel-Elemente und dort den Abschnitt "ClipToBounds innerhalb eines Canvas".

    Gruß Elmar

    • Als Antwort markiert Thomas2705 Sonntag, 15. Juli 2012 19:13
    Donnerstag, 12. Juli 2012 23:46