我正在为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