我正在学习创建 WPF 应用程序并且我有一个家庭作业。我必须创建一个 wpf mvvm “tron lightcycle 游戏”,但不幸被卡住了。
在视图 (Mainwindow.xaml) 中有一个画布。我应该在这里画画。
...
<Canvas Name="cnvs_game" Margin="5,5,5,5">
...
在 ViewModel 中有一个 GameData 类和一个 Timer。GameData 的每个刻度都会更新(GameTime,Player1CanvasPosition (Point),... )。
我将 Gametime 竞标到 View 中,如下所示:
主窗口.xaml.cs:
...
<TextBlock Text="{Binding GameTime}" />
...
ViewModel.cs:
...
private GameData _GameData;
...
public String GameTime { get { return _GameData.GameTime.ToString(); } }
...
private void GameTimer_Tick(object sender, EventArgs e)
{
_GameData.Step();
OnPropertyChanged("GameTime"); // PropertyChanged with error handling
OnPropertyChanged("Player1CanvasPosition ");
OnPropertyChanged("Player2CanvasPosition ");
}
视图中的 GameTime 刷新。这并不难。但是我还是不知道怎么画。
我应该如何获得 Player1CanvasPosition 并在那里绘制一个矩形(在画布中)。做这个的最好方式是什么?请帮帮我!:S