Windows Phone 8 - ScrollViewer最大内容大小,应用程序崩溃

时间:2013-08-14 15:04:22

标签: c# windows-phone-8 crash grid scrollviewer

我正在为WP 8创建游戏,我正在使用ScrollViewer和带按钮的网格游戏板。

问题是当游戏板过于庞大时。然后应用程序崩溃,没有例外。

输出是:

ScrollViewer content size: 2400,2400 //my debug output
The program '[3420] TaskHost.exe' has exited with code -528909961 (0xe0797977).

这是XAML代码:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ScrollViewer x:Name="ContentPanelScroll" HorizontalScrollBarVisibility="Auto">
            <Grid x:Name="GamePanel" ShowGridLines="True">
                <Grid.RowDefinitions>
                    <RowDefinition Height="100"/>
                    <RowDefinition Height="100"/>
                    <RowDefinition Height="100"/>
                    <!-- more RowDefinitions in this grid are addend in C# code-->                               
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="100"/>
                    <ColumnDefinition Width="100"/>
                    <ColumnDefinition Width="100"/>
                    <!-- more ColumnDefinitions in this grid are addend in C# code-->                       
                </Grid.ColumnDefinitions>

                <Button Grid.Row="0" Grid.Column="0" Content="..."/>
                <!-- more buttons in this grid are addend in C# code-->
            </Grid>
        </ScrollViewer>
    </Grid>

这是我调整游戏板大小/缩放的方法

private void ZoomGameBoard(double delta)
    {
    // typically delta = 10px;
    // 20 columns and 20 rows, each zoomed to 150px is 3000x3000 px
    foreach (var item in RowDefinitions)
    {
        var value = item.Height.Value + delta;
        item.Height = new GridLength(value); // make row bigger so its content stretch
    }

    foreach (var item in ColumnDefinitions)
    {
        var value = item.Width.Value + delta;
        item.Width = new GridLength(value); // make column bigger so its content stretch
    }
}

您能否告诉我问题在哪里或如何制作更大的游戏板?

THX。 : - )

编辑:

我的问题可能就是这样:

Insufficient memory to continue the execution of the program.

和这个

An unhandled exception of type 'System.OutOfMemoryException' occurred in System.Windows.ni.dll

但是每次应用程序崩溃(有时候)都没有解决我的问题如何显示大型游戏板时,不会抛出此异常。

编辑2: 这是测试应用程序来演示我的问题。您可以在代码中更改大小或使用手机底部的按钮。

整个项目在这里:http://www.stud.fit.vutbr.cz/~xmarec12/shared/2013/TestGameApp.zip

Test app img

0 个答案:

没有答案