Définir une bordure autour d'un StackPanel.

Voici mon code XAML:

<Window x:Class="CarFinder.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Search for cars in TuMomo" Height="480" Width="600">
    <DockPanel Margin="8">
        <Border CornerRadius="6"
                BorderBrush="Gray"
                Background="LightGray"
                BorderThickness="2"
                Padding="8">
            <StackPanel Orientation="Horizontal"
                    DockPanel.Dock="Top"
                    Height="25">
                <TextBlock FontSize="14" Padding="0 0 8 0">
                    Search:
                </TextBlock>
                <TextBox x:Name="txtSearchTerm" Width="400" />
                <Image Source="/CarFinder;component/Images/Chrysanthemum.jpg" />            
            </StackPanel>
        </Border>
        <StackPanel Orientation="Horizontal"
                    DockPanel.Dock="Top"
                    Height="25">

        </StackPanel>
    </DockPanel>
</Window>

la bordure est placée autour de toute la fenêtre. Et aussi, quand je crée un autre StackPanel il est ajouté à la droite de mon StackPanel précédent au lieu d'être ajouté sous elle. Quelle est la raison?

36
demandé sur rae1 2010-04-18 20:47:36

2 réponses

vous avez mis DockPanel.Dock= " Top " au StackPanel, mais le StackPanel n'est pas un enfant du DockPanel... la Frontière est. Votre accueil à la propriété est ignorée.

si vous déplacez DockPanel.Dock="Top" à la Frontière au lieu de cela, les deux de vos problèmes seront résolus :)

16
répondu Brian Genisio 2010-04-18 17:13:16

Qu'en est celui-ci :

<DockPanel Margin="8">
    <Border CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="2" DockPanel.Dock="Top">
        <StackPanel Orientation="Horizontal">
            <TextBlock FontSize="14" Padding="0 0 8 0" HorizontalAlignment="Center" VerticalAlignment="Center">Search:</TextBlock>
            <TextBox x:Name="txtSearchTerm" HorizontalAlignment="Center" VerticalAlignment="Center" />
            <Image Source="lock.png" Width="32" Height="32" HorizontalAlignment="Center" VerticalAlignment="Center" />            
        </StackPanel>
    </Border>
    <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" Height="25" />
</DockPanel>
28
répondu Mohammad Dayyan 2010-04-18 17:14:41