Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
dragsid
0 / 0 / 0
Регистрация: 29.11.2015
Сообщений: 2
1

WPF / Save The Humans / не работает должным образом кнопка startButton / VS 2019

10.07.2019, 12:38. Просмотров 934. Ответов 2

Добрый вечер! Сейчас читаю книгу Эндрю Стиллмена "Head First. C#". Сделал первый пример, сборка прошла без ошибок, но кнопка старт не работает, при нажатии на нее открывается окно с кодом и напротив 48 строки появляется красный крест и пишет
исключение не обработано
System.InvalidOperationException: "Не удается разрешить все ссылки на свойства в пути свойств "(Canvas.left)".
Проверьте, что соответствующие объекты поддерживают такие свойства."
(Я пока не разобрался как тут красиво прикреплять картинки, поэтому прикрепил скрин вложением.)

Xaml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<Window x:Class="WpfApp2.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:WpfApp2"
        mc:Ignorable="d"
        Title="Save the humans" Height="1080" Width="1920">
    <Window.Resources>
        <ControlTemplate x:Key="enemyTemplate" TargetType="{x:Type ContentControl}">
            <Grid>
                <Ellipse Fill="Red" Height="100" Stroke="Black" Width="100"/>
            </Grid>
        </ControlTemplate>
    </Window.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="160"/>
            <ColumnDefinition/>
            <ColumnDefinition Width="160"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="160"/>
            <RowDefinition/>
            <RowDefinition Height="160"/>
        </Grid.RowDefinitions>
        <Button x:Name="startButton" Content="Старт" Grid.Row="2" 
                RenderTransformOrigin="0.505,0.5" Height="50" Width="100" 
                HorizontalAlignment="Center" VerticalAlignment="Center" Click="StartButton_Click"/>
        <StackPanel x:Name="enemy" Grid.Column="2" Orientation="Vertical" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBlock 
                TextWrapping="Wrap" Text="Избегай это"
                RenderTransformOrigin="0.467,0.501" Height="30" Width="115" FontSize="18" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <ContentControl Content="ContentControl" 
                Height="100" Width="100" Template="{DynamicResource enemyTemplate}"/>
        </StackPanel>
        <ProgressBar Grid.Column="1" 
                     Grid.Row="2" Height="20"/>
        <Canvas x:Name="playArea" Grid.Row="1" Grid.ColumnSpan="3">
            <Canvas.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF3CF54D" Offset="0"/>
                    <GradientStop Color="#FF1AB962" Offset="1"/>
                </LinearGradientBrush>
            </Canvas.Background>
            <StackPanel x:Name="human" Canvas.Left="32" Orientation="Vertical" Canvas.Top="15">
                <Ellipse Fill="White" Height="20" Stroke="Black" Width="20" VerticalAlignment="Top" HorizontalAlignment="Center"/>
                <Rectangle Fill="White" Height="45" Stroke="Black" Width="20"/>
            </StackPanel>
            <TextBlock x:Name="gameOverText" TextWrapping="Wrap" Text="Game Over" FontFamily="Arial Black" FontSize="100" FontWeight="Bold" FontStyle="Italic" Canvas.Left="657" Canvas.Top="264"/>
            <Rectangle x:Name="target" Height="50" Canvas.Left="1277" Stroke="Black" Canvas.Top="179" Width="50" RenderTransformOrigin="0.5,0.5">
                <Rectangle.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="45"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Rectangle.RenderTransform>
                <Rectangle.Fill>
                    <RadialGradientBrush>
                        <GradientStop Color="#FF000CFF" Offset="0"/>
                        <GradientStop Color="#FFA6AAFD" Offset="1"/>
                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
        </Canvas>
 
    </Grid>
</Window>
CS
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Animation;
 
namespace WpfApp2
 
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Random random = new Random();
 
        public MainWindow()
        {
            InitializeComponent();
        }
 
        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, new PropertyPath(propertyToAnimate));
            storyboard.Children.Add(animation);
            storyboard.Begin();
        }
 
      
    }
}
0
Миниатюры
WPF / Save The Humans / не работает должным образом кнопка startButton / VS 2019  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2019, 12:38
Ответы с готовыми решениями:

WPF / Save The Humans / не работает должным образом кнопка startButton / VS CM2017
Добрый вечер! Сейчас прохожу пример из книжки Эндрю Стиллмена &quot;Head First. C#&quot; издательства...

Save the humans. Исключение ArgumentOutOfRangeException
Читаю книгу &quot;Изучаем C#&quot; 3-е издание. При запуске игры и нажатии на кнопку Start вылазит окно с...

PeekMessage не работает должным образом
#include&lt;windows.h&gt; #include &lt;iostream&gt; HHOOK _hook; HINSTANCE hinstDLL; int a; LRESULT...

Не работает должным образом тачпад
После обновления до Aniversary update пропали жесты тремя пальцами ( тремя пальцами влево/враво для...

Не работает должным образом клавиатура
Привет всем.Столкнулся вот с какой проблемой... девушке обновил графический драйвер ати , и тут...

2
novikov.ea
1404 / 1014 / 347
Регистрация: 10.06.2011
Сообщений: 1,773
10.07.2019, 18:53 2
Лучший ответ Сообщение было отмечено dragsid как решение

Решение

Свойства Canvas.left не существует, так как Left нужно писать с большой буквы: Canvas.Left.
0
dragsid
0 / 0 / 0
Регистрация: 29.11.2015
Сообщений: 2
10.07.2019, 19:16  [ТС] 3
Спасибо, ошибка пропала, но теперь при нажатии на кнопку "старт" вообще ничего не происходит. Я вижу много у кого проблемы с данной книгой.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2019, 19:16

Программа не работает должным образом! C#
Была задача: Вводится текст. Отредактировать текст, удаляя те слова которые уже встречались ранее....

Z-index не работает должным образом
Доброго времени суток уважаемые форумчане! Прошу совета по решению проблемы с перекрытием слоев....

Не работает должным образом LZ-78 (компрессор) c++
Приветствую, форумчане! Прошу помочь с небольшим проектом. Есть код на C++, но не могу реализовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.