我正在努力学习c#,所以我决定跟随youtube上的教程,教你如何使用xaml和c#创建snake游戏。this is the video, I stopped at 46 min一切正常,直到完成网格设置后,我们运行代码。而结果是这样的
我的是这样的
。我很确定我没有错过任何东西,但可能任何真正了解xaml和c#的人都会注意到这一点,xaml和c#代码都是如此:
<Window x:Class="SnakeGame2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SnakeGame2"
mc:Ignorable="d"
Title="Snake" Height="500" Width="800"
Background="{StaticResource BackgroundColor}"
Foreground="{StaticResource TextColor}"
FontFamily="{StaticResource MainFont}"
WindowStartupLocation="CenterScreen"
Icon="Assets/icon.ico">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock x:Name="Scoretext"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="Score: 0"
FontSize="22"
Margin="10"/>
<Border x:Name="GridBorder"
Grid.Row="1"
BorderBrush="{StaticResource GridLinecolor}"
BorderThickness="1.5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RenderOptions.EdgeMode="Aliased">
<UniformGrid x:Name="GameGrid"
Width="400"
Height="400"
Background="{StaticResource GridBackgroundColor }"
SnapsToDevicePixels="True"
RenderOptions.BitmapScalingMode="HighQuality">
</UniformGrid>
</Border>
</Grid>
</Window>
个字符
谢谢你的时间
1条答案
按热度按时间wmvff8tz1#
您已经将行数减少到10,在视频中是15,但您没有更改网格的高度,仍然是400 px。
字符串
通常情况下,这只会为每个单元格生成一个矩形,其高度为40 px(40/10),宽度为~ 27 px(40/15),但在您的示例中,您正在使用图像来渲染单元格背景,并且默认情况下,该图像将保持其纵横比以适应单元格。如果有帮助,在此图像中,绿色是单元格,但您可以在中间看到
Empty.png
图像:x1c 0d1x的数据
您可以将图像设置为 * 拉伸 *,但这不会像视频中那样看起来相同的均匀方形单元格。当使用固定的图像进行渲染时,如果你要改变行数,我们通常会调整网格的高度,基本上我们只需要保持单元格图像的纵横比。
要解决此问题,请尝试将图像设置为拉伸:
型
或者将高度更改为267 px:
型