0

こんにちは、WindowsPhoneのxamlのリストボックスの中央に6つのテキストブロックを配置する必要があります。私はこのコードを書きました

    <!--ContentPanel - inserire ulteriore contenuto qui-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ListBox x:Name="CountryListBox" HorizontalAlignment="Left"  Margin="6,6,0,151" Width="444">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Height="Auto" Width="500" HorizontalAlignment="Center">

                        <TextBlock Text="{Binding Word}" SizeChanged="TextBox_SizeChanged" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" HorizontalAlignment="Center" FontWeight="Bold" Foreground="Red" FontSize="64"/>
                        <TextBlock Text="{Binding Parola1}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Height="70"  HorizontalAlignment="Center"/>
                        <TextBlock Text="{Binding Parola3}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Height="70"  HorizontalAlignment="Center"/>
                        <TextBlock Text="{Binding Parola4}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Height="70"  HorizontalAlignment="Center"/>
                        <TextBlock Text="{Binding Parola5}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Height="70"  HorizontalAlignment="Center"/>
                        <TextBlock Text="{Binding Parola2}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Height="70"  HorizontalAlignment="Center"/>

                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <Button Content="Giusto" Height="72" HorizontalAlignment="Left" Margin="47,462,0,0" Name="button1" VerticalAlignment="Top" Width="160" Click="button1_Click" />
        <Button Content="Sbagliato" Height="72" HorizontalAlignment="Left" Margin="251,462,0,0" Name="button2" VerticalAlignment="Top" Width="160" />
    </Grid>

しかし、自動の幅と高さでこれを実行したいと思います。助言がありますか?別の小さな質問があります。別のオブジェクトを使用せずにテキストブロックのフォントを自動で変更するにはどうすればよいですか。ありがとう

4

1 に答える 1

0

自動の高さと幅が必要な場合は、とを設定するだけHeight="Auto"ですWidth="Auto"。私はあなたが期待しているものを手に入れませんでした。何が起こっているのか、そしてあなたが何を期待しているのかについてのスクリーンショットを表示する方が良いでしょう。

さらに、テキストブロックが中央揃えになることを期待している場合は、プロパティを設定してみてくださいHorizontalContentAlignment="Center"

コメントに基づいて編集:を設定するTextWrapping="Wrap"と、テキストは次の行に続きます。残念ながら、WindowsPhoneにはフォントの自動サイズ変更オプションはありません。このようなコンバーターを使ってみることができるかもしれません

<TextBlock Text="{Binding Word}" FontSize={{Binding Path=Word, Converter={StaticResource TexttoFontSizeConverter}}" />

そして、コンバーターでは、このようなことを行うことができます

public class TexttoFontSizeConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter,
        System.Globalization.CultureInfo culture)
    {
        var text = (string)value;
        if (text.Length > 30)
            return 20;
        else
            return 30; //20 ad 30 are the font sizes
    }

    public object ConvertBack(object value, Type targetType, object parameter,
        System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException();
    }

    #endregion
}

注:私はこれをテストしていません

于 2012-11-27T07:35:16.553 に答える