Frage

Ich habe das folgende Markup in einem WPF-Usercontrol bekommen:

<Border Name="_border" BorderThickness="4" BorderBrush="Blue">
    <Canvas Name="_canvas" Background="Black" >
        <DockPanel LastChildFill="True">
            <ItemsControl Name="_itemsControl" Background="Bisque" AllowDrop="True" Height="100" Width="100"
                      HorizontalAlignment="Stretch"
                      VerticalAlignment="Stretch"
                      ItemTemplate="{StaticResource pictureTemplate}"
                      ItemsPanel="{StaticResource panelTemplate}"
                      Drop="_itemsControl_Drop" 
                      DragOver="_itemsControl_DragOver" 
                      DragLeave="_itemsControl_DragLeave" 
                      PreviewMouseLeftButtonDown="_itemsControl_PreviewMouseLeftButtonDown"
                      PreviewMouseMove="_itemsControl_PreviewMouseMove">

        </ItemsControl>
             </DockPanel>
    </Canvas>
</Border>

Ich möchte die Items alle verfügbaren Raum zu füllen, aber es ist nicht die DockPanel der LastChildFill Eigenschaft zu gehorchen. Die horizontalen und vertikalen „Stretch“ Werte helfen, sind auch nicht. Was vermisse ich?

War es hilfreich?

Lösung

Wenn Sie die Leinwand vollständig entfernen, werden Sie dieses Problem nicht. Sobald Sie eine Leinwand einführen, müssen Sie Größe und Position von Elementen im Canvas setzen (wie der DockPanel).

Andere Tipps

Was ist die Größe Ihrer DockPanel? Versuchen Sie, einen Hintergrund auf Ihrem DockPanel für Testung.

Ich glaube nicht, dass Sie Probleme mit dem ist nicht Item dehnen DockPanel zu füllen, aber eigentlich Ihre DockPanel ist Stretching nicht im Canvas-Steuerelement zu passen. Canvas-Steuerelement und seine Kinder nicht die Größe thier Eltern passen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top