5

1) 何が起こっているのか、2) 問題を解決する方法を探しています。

問題

ListBox アイテムの高さが 2521 を超えると、背景が明示的に別のものに設定されていても、背景が黒に変更されているように見えます。

再現方法

以下にあるサンプル XAML ファイルを使用して、xaml.cs ファイルに次を追加します。

DataContext = new List<int>() { 1 };

TextBlock の高さを 2522 以上に変更します。

サンプル コードは、私が問題に遭遇した場所ではありませんが、バグを示す簡単な例です。サイズが 2522 以上の TextBlock を使用する予定はありません :)

サンプル XAML ファイル

    <Grid x:Name="LayoutRoot" Background="Brown">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
            <phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0">
                <ListBox ItemsSource="{Binding}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid Background="White">
                                <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
                                    <TextBlock Height="2521" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
                                </StackPanel>
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </phone:PivotItem>

        </phone:Pivot>

    </Grid>
</phone:PhoneApplicationPage>

備考

私の UI について何人かの人々が懸念を表明しました。上記のコードはサンプルであり、実際の UI ではありません。パフォーマンスの問題はなく、ListBox の動作も遅くありません。背景の色が変わることを除いて、すべてが期待どおりに機能します。

4

3 に答える 3

1

WP7 では、TextBlocks の高さ制限は 2048x2048 でした。それが WP8 で修正されたかどうかはわかりませんが、現在発生している問題と同じようです。テキストを 2048 ピクセル未満のチャンクに分割するか、ScrollableTextBlockのようにそれを行うものを使用することを検討してください。

于 2012-12-04T22:59:42.643 に答える
0

minWidth をリストボックスに設定できます。これはあなたを助けるかもしれません。

 <Grid x:Name="LayoutRoot" Background="Brown">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
        <phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0">
            <ListBox ItemsSource="{Binding}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Background="White">
                            <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
                                <TextBlock Height="2521" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </phone:PivotItem>

    </phone:Pivot>

</Grid>

于 2013-07-18T08:17:24.030 に答える
0

「理由」はわかりませんが、「何」については、グリッドが黒い背景を実行していたようです。グリッドを取り出すと、動作します...

    <phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
        <phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0" >
            <ListBox ItemsSource="{Binding}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28" Background="White">
                            <TextBlock Height="2530" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </phone:PivotItem>

それはあなたのために働きますか?

于 2012-11-21T19:28:20.550 に答える