0

ListBox とその要素に少し問題があります。私のコードでわかるように、両方のテキストブロックのスタックパネルは 250 に設定されています。そうしないと、テキストが 1 行に展開されてボタンが表示されないため、このように設定されています。明らかな問題は、解像度または向きの変更が画面に完全に収まらない場合に、このパラメーターを静的に設定することです。この幅を動的に設定する方法があるかどうか知りたいです。

<ListBox x:Name="attractionsListbox" Margin="0,0,-12,0" ItemsSource="{Binding Attractions}" Loaded="attractionsListbox_Loaded">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Tag="{Binding Name}" Tap="AttractionListBoxItem_Tap">
                <Image Height="140" Width="140" Margin="0,5,0,0" Source="{Binding Thumbnail}" MaxWidth="140" MaxHeight="140" Stretch="Fill" />
                <StackPanel Width="250">
                    <TextBlock x:Name="AttractionName" Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSmallStyle}" FontSize="20" Foreground="Black" FontWeight="Bold" />
                    <TextBlock Text="{Binding ShortDescription}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSmallStyle }" Foreground="Black" />
                </StackPanel>
                <Button Width="80" Height="80" Padding="10,3,10,5" BorderBrush="Black" Click="Add_Todo_Click" Tag="{Binding Name}">
                    <Button.Background>
                        <ImageBrush ImageSource="/SundsvallWP7;component/Images/appbar.add.rest.png"/>
                    </Button.Background>
                </Button>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

(アンドロイドには、各コントロールの重みを割り当てることができる重みがあります。これがWindows Phoneに存在するかどうかはわかりません)。

どうもありがとうございました。

4

1 に答える 1

0

DockPanel は、StackPanel よりもシナリオに適している場合があります。ボタンを右側に、画像を左側に配置すると、中央の StackPanel コンテンツがいっぱいになります。

http://www.windowsphonegeek.com/articles/Using-DockPanel-in-WP7 .

または、向きが 2 つしかなく、解像度が変化することはありません。値コンバーターを使用して、幅を方向にバインドするだけです。

于 2012-05-19T18:33:43.917 に答える