民间!
我倾向于C#而我正在使用“Head First C# - 3rd Edition”这本书。但我的第一个例子不起作用。我的第一个程序成功构建,然后我按下按钮“启动”程序崩溃。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.UI.Xaml.Media.Animation;
// Документацию по шаблону элемента "Основная страница" см. по адресу http://go.microsoft.com/fwlink/?LinkId=234237
namespace Save_The_Humans
{
/// <summary>
/// Основная страница, которая обеспечивает характеристики, являющимися общими для большинства приложений.
/// </summary>
public sealed partial class MainPage : Save_The_Humans.Common.LayoutAwarePage
{
Random random = new Random();
public MainPage()
{
this.InitializeComponent();
}
/// <summary>
/// Заполняет страницу содержимым, передаваемым в процессе навигации. Также предоставляется любое сохраненное состояние
/// при повторном создании страницы из предыдущего сеанса.
/// </summary>
/// <param name="navigationParameter">Значение параметра, передаваемое
/// <see cref="Frame.Navigate(Type, Object)"/> при первоначальном запросе этой страницы.
/// </param>
/// <param name="pageState">Словарь состояния, сохраненного данной страницей в ходе предыдущего
/// сеанса. Это значение будет равно NULL при первом посещении страницы.</param>
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
}
/// <summary>
/// Сохраняет состояние, связанное с данной страницей, в случае приостановки приложения или
/// удаления страницы из кэша навигации. Значения должны соответствовать требованиям сериализации
/// <see cref="SuspensionManager.SessionState"/>.
/// </summary>
/// <param name="pageState">Пустой словарь, заполняемый сериализуемым состоянием.</param>
protected override void SaveState(Dictionary<String, Object> pageState)
{
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
AddEnemy();
}
private void AddEnemy()
{
ContentControl enemy = new ContentControl();
enemy.Template = Resources["EnemyTemplate"] as ControlTemplate;
AnimateEnemy(enemy, 0, playArea.ActualWidth - 100, "(Canvas.Left)");
AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100),
random.Next((int)playArea.ActualHeight - 100), "(Canvas.Top)");
playArea.Children.Add(enemy);
}
private void AnimateEnemy(ContentControl enemy, double from, double to, string propertyToAnimate)
{
Storyboard storyboard = new Storyboard() { AutoReverse = true, RepeatBehavior = RepeatBehavior.Forever };
DoubleAnimation animation = new DoubleAnimation()
{
From = from,
To = to,
Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6)))
};
Storyboard.SetTarget(animation, enemy);
Storyboard.SetTargetProperty(animation, propertyToAnimate);
storyboard.Children.Add(animation);
storyboard.Begin();
}
}
}
Windows 2012 for Windows 8说:“'maxValue'必须大于零。”
我做错了什么以及如何修理这个包?
链接源代码和VS项目:https://dropmefiles.com/RmCbZ
屏幕错误消息: