0

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

问题是当游戏板太大时。然后应用程序崩溃无一例外。

输出是:

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
    }
}

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

谢谢。:-)

编辑:

我的问题大概是这样的:

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

测试应用 img

4

0 回答 0