Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Bug? Animation+GeometryPath+Multibinding+Loaded 
:(
    Опции темы
ААР
Дата 22.10.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.10.2008

Репутация: нет
Всего: нет



Всем привет! Читал вас, теперь зарегился, есть вопрос.

Столкнулся с багом, нигде не нашёл похожего. Multibinding выставляет значения после события Loaded.
В этом примере используется MatrixAnimationUsingPath(с PointAnimationUsingPath результат аналогичный). Круг должен следовать по черной линии(ну почти, я спешил  )
Вместо этого он скачет в левую верхнюю точку из-за того, что Multibinding вызывается после события Loaded(если поставить брейкпоинт в конвертере это видно), а к тому моменту анимация уже забирает "плохой" PathGeometry с невозвращённым значением, которое получается равным точке в нулевых координатах.

В связи с этим вопрос. Знает ли кто-нибудь простой обходной способ?
Мне необходимо чтобы анимация стартовала при загрузке. Варианты с MouseEnter и прочее не подойдут.

Code:

Код

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
using System.Windows.Data;
namespace WpfApplication1
{
public partial class App : Application{}

public class PointConverter : IValueConverter{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{return new Point(150, 150);}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){throw new NotImplementedException();}}

public class PointMultiConverter : IMultiValueConverter{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{return new Point(75, 50);}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture){throw new NotImplementedException();}}}





XAML:


Код

<Window x:Class="WpfApplication1.Window1"
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:local ="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">

<Canvas Name="MainCanvas" Width="300" Height="300">
<Canvas.Resources>
<local:PointConverter x:Key="Con"/>
<local:PointMultiConverter x:Key="ConMulti"/>

<PathGeometry x:Key="PathGeom">
<PathFigure StartPoint="0,150">
<LineSegment>
<LineSegment.Point>
<MultiBinding Converter="{StaticResource ConMulti}">
<Binding ElementName="MainCanvas" Path="ActualWidth"/>
<Binding ElementName="MainCanvas" Path="ActualHeight"/>
</MultiBinding>
</LineSegment.Point> 
</LineSegment>
<LineSegment >
<LineSegment.Point>
<Binding ElementName="MainCanvas" Path="Width" Converter="{StaticResource Con}"/>
</LineSegment.Point>
</LineSegment>
</PathFigure> 
</PathGeometry>

<Storyboard x:Key="Ellipse_PathAnim">
<MatrixAnimationUsingPath
BeginTime="0:0:0"
Storyboard.TargetName="Ellipse_MatrixTransform"
Storyboard.TargetProperty="Matrix"
DoesRotateWithTangent="True"
Duration="0:0:5" 
RepeatBehavior="Forever" 
PathGeometry="{StaticResource PathGeom}"
>
</MatrixAnimationUsingPath>
</Storyboard>
</Canvas.Resources>

<Path Data="{StaticResource PathGeom}" Stroke="Black"/>
<Ellipse
Width="20"
Fill="Red"
Height="20"
RenderTransformOrigin="0.5,0.5">

<Ellipse.RenderTransform>
<TransformGroup>
<MatrixTransform x:Name="Ellipse_MatrixTransform">
<MatrixTransform.Matrix >
<Matrix />
</MatrixTransform.Matrix>
</MatrixTransform>
</TransformGroup>
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard Name="AnimStory" Storyboard="{StaticResource Ellipse_PathAnim}">
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
</Canvas>
</Window>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.