не могу понять, почему не работает анимация из книги

Почему этот код не работает?

<UserControl x:Class="slv.MainPage"
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" 
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
<Rectangle Fill="#FFFF0000" Stroke="#FF000000" Width="40" Height="40" Canvas.Top="40" x:Name="rect">
    <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rect" Storyboard.TargetProperty="(Canvas.Left)" >
                        <DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="300" />
                        <DiscreteDoubleKeyFrame KeyTime="0:0:9" Value="600" />
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Rectangle.Triggers>
</Rectangle>

этот код из книги о Silverlight 3, автор Laurence Moroney

13.10.2009 11:54:35
Вы получаете сообщение об ошибке или оно не дает ожидаемых результатов?
ChrisF♦ 13.10.2009 11:57:22
когда я запускаю отладку и тестовая страница открыта и загружена, ничего не происходит. но я жду, что этот пример покажет мне анимацию прямоугольника
user189037 13.10.2009 12:03:14
1 ОТВЕТ
РЕШЕНИЕ

Ну, если это из книги, и это точный XAML, то это немного странно. Мне удалось заставить пример работать просто отлично, но вам не хватает холста.

Вот код, который я изменил, добавив холст вокруг прямоугольника. Даже если бы он отображал что-либо, он не работал бы, если бы вы не обернули его холстом, потому что в анимации он конкретно ссылается на перевод прямоугольника относительно холста.

<UserControl x:Class="SilverlightApplication2.MainPage"
    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" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Canvas x:Name="LayoutRoot">
        <Rectangle Fill="#FFFF0000" Stroke="#FF000000" Width="40" Height="40" Canvas.Top="40" x:Name="rect">
            <Rectangle.Triggers>
                <EventTrigger RoutedEvent="Rectangle.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rect" Storyboard.TargetProperty="(Canvas.Left)" >
                                <DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="300" />
                                <DiscreteDoubleKeyFrame KeyTime="0:0:9" Value="600" />
                            </DoubleAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Rectangle.Triggers>
        </Rectangle>
    </Canvas>
</UserControl>
0
13.10.2009 12:45:23
Великий! спасибо Йоханнес Автор этой книги написал, что тег Canvas в silverlight для браузера заменен на тег UserControl. и некоторые из его примеров действительно работали без Canvas.
user189037 13.10.2009 13:18:08