Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232

Storyboard restart (не перегрузом окна)

11.03.2020, 22:16. Показов 3199. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую,
Не пойму каким образом этот StoryBoard можно перегрузить кнопкой или через Binding? Но не перезапуском окна?
К чему так сделали, не пойму.
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
 
<Grid>
 
<Button
            x:Name="input_btn"
            Width="60"
            Height="40"
            Margin="0,10,20.4,0"
            HorizontalAlignment="Right"
            VerticalAlignment="Top"
            Click="input_btn_Click"
            Content="вход">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard TargetName="MyLine1">
                            <DoubleAnimation
                                Storyboard.TargetProperty="X2" 
                                To="200"
                                Duration="0:0:5" />
                           
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>
 
        <Button
            x:Name="output_btn"
            Width="60"
            Height="40"
            Margin="0,68,20.4,0"
            HorizontalAlignment="Right"
            VerticalAlignment="Top"
            Click="output_btn_Click"
            Content="выход">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard TargetName="MyLine1">
                            
                            <DoubleAnimation
                                Storyboard.TargetProperty="X1"
                                To="200"
                                Duration="0:0:5" />
                            <DoubleAnimation
                                Storyboard.TargetProperty="X1"
                                To="200"
                                Duration="0:0:5" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>
 
        <Line
            Name="MyLine1"
            Stroke="Aqua"
            StrokeThickness="4"
            X1="40"
            X2="50"
            Y1="40"
            Y2="40" />
 
    </Grid>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2020, 22:16
Ответы с готовыми решениями:

You need to restart your computer. Hold down the Power button for several seconds or press the Restart button
Доброго времени суток, жители форума! При загрузке ОС MAC выдает ошибку &quot;You need to restart your computer. Hold down the Power button...

Очень нужно подсобить с перегрузом оператора пресечения
Значит так есть код выполняет пересечения множеств. Но проблема в том что не могу сделать перегруз. Делаю перегруз, у компилятора ор выше...

Повтор StoryBoard
Здравствуйте. Как сделать, чтобы после окончания StoryBoard выполнялся заново? Именно весь, с заново рассчитывающимися рандомными...

58
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
14.03.2020, 10:35  [ТС]
Студворк — интернет-сервис помощи студентам
А я вчера под ночь уже, на "трубе" в одном из видео увидел, что используется <DataTrigger.ExitActions> в чем-то похожих случаях.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
14.03.2020, 10:56
кружок-ДДТ, с INPC в свойстве всё понятно?
Уберите оттуда INPC и WPF перестанет на него реагировать.

Добавлено через 8 минут
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
используется <DataTrigger.ExitActions> в чем-то похожих случаях.
Я анимацию на практике не использую.
Поэтому знаю слабо.
В основном в рамках общения в этом разделе форума.

Добавлено через 16 секунд
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
используется <DataTrigger.ExitActions> в чем-то похожих случаях.
Я анимацию на практике не использую.
Поэтому знаю слабо.
В основном в рамках общения в этом разделе форума.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
14.03.2020, 12:34  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
кружок-ДДТ, с INPC в свойстве всё понятно?
Уберите оттуда INPC и WPF перестанет на него реагировать.
Да, в данном случае без INPC не работает.

В StoryBoard.erase проблемка была влияющая на поведение линии при прерывании. Но я исправил это введением других координат. Сейчас обе ведут себя идентично.

Также понравилось, что поместили DoubleStoryboard в ресурсы окна. А в Line только управление. Это структуризировало код.
Выглядит, чисто, транспарентно, да еще и работает как нужно.
Можно я эту ветку продолжу по мере поступления вопросов? Есть желание на базе Boolean управления попробовать и другие.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
14.03.2020, 12:49
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Можно я эту ветку продолжу по мере поступления вопросов?
Продолжайте, если это будут вопросы по этому же коду.
Если другие, то лучше создайте новую.

Добавлено через 3 минуты
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
В StoryBoard.erase проблемка была влияющая на поведение линии при прерывании. Но я исправил это введением других координат. Сейчас обе ведут себя идентично.
Что за "косяк"?
Я не тестировал.

Но если делать "по уму", то на время рисования или стирания обе кнопки должны быть не активны.
Я так сделал (если не ошибаюсь) в своём последнем варианте с VM.

Добавлено через 15 секунд
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
В StoryBoard.erase проблемка была влияющая на поведение линии при прерывании. Но я исправил это введением других координат. Сейчас обе ведут себя идентично.
Что за "косяк"?
Я не тестировал.

Но если делать "по уму", то на время рисования или стирания обе кнопки должны быть не активны.
Я так сделал (если не ошибаюсь) в своём последнем варианте с VM.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
14.03.2020, 15:54  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что за "косяк"?
Я не тестировал.
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
 <Window.Resources>
        <Storyboard x:Key="Storyboard.Draw">
            <DoubleAnimation
                Storyboard.TargetProperty="X2"
                From="40"
                To="200"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="X1"
                From="40"
                To="40"
                Duration="0:0:1" />
        </Storyboard>
        <Storyboard x:Key="Storyboard.Erase">
            <!--<DoubleAnimation
                Completed="StoryBoard_Completed"
                Storyboard.TargetProperty="X2"
                From="200"
                To="200"
                Duration="0:0:5" />-->
            <DoubleAnimation
                Storyboard.TargetProperty="X1"
                From="40"
                To="200"
                Duration="0:0:5" />
        </Storyboard>
 
    </Window.Resources>

Вариант 1(event) с вариантом 2 (boolean) два ведут себя не идентично.
Если вариант 1(event) прерываешь на пол пути, то "отрезок" плывет и исходит на нет в конце тайминга.
Вариант 2 (boolean) этого не делает. А надо.
Сделал DoubleAnimation идентичной, не идет.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
14.03.2020, 23:04  [ТС]
Элд Хасп, вроде бы порешал.

Вопрос теоретический.

Например, строка вышла и не доходя до конца, я жму "стоп". Строка превращается в "отрезок" и уже отрезком идет к концу.
Если я в это время нажимаю "старт" , то эта же анимация "летит" назад и начинает все сначала.

Теоретически возможно в догонок первому "отрезку" отправлять очередной? А при стопе они все благополучно доходят до конца и исчезают.
Что-то похожее есть в играх про "звездный войны" там кусками-отрезками лазерных пушек пуляются.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
14.03.2020, 23:20
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Вопрос теоретический.....
Анимация меняет свойства уже существующих объектов.
Если вы сможете сделать ОДИН объект состоящий из переменного количества отрезков, то можно подумать как к нему применить анимацию.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
15.03.2020, 18:35  [ТС]
Элд Хасп,
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если вы сможете сделать ОДИН объект состоящий из переменного количества отрезков, то можно подумать как к нему применить анимацию.
это не тот подход, что нужен.

Перезапуск возвращает назад идущий к своей цели отрезок.
А вот как бы сделать чтобы не возвращал, а запускал следующий?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
15.03.2020, 19:08
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Перезапуск возвращает назад идущий к своей цели отрезок.
А вот как бы сделать чтобы не возвращал, а запускал следующий?
Перезапуск не ЗАПУСКАЕТ НОВЫЙ отрезок, а изменяет значения свойств СУЩЕСТВУЮЩЕГО отрезка.
А запуск следующего в дополнение к проигрывающемуся, означает СОЗДАНИЕ НОВОГО второго отрезка.
Анимация может изменять какое-то значение по определённому закону, а создавать НОВЫЕ объекты она не может.

В описываемом вами примере про очередь выстрелов - каждый выстрел это ОТДЕЛЬНЫЙ объект созданный в МОДЕЛИ (игровом движке). У каждого этого объекта есть набор данных.
И View строит по этому набору отображение этого объекта. В том числе и с помощью анимации.

Но сразу уточню. WPF анимация мало пригодна для игровой графике, так как в игровой графике надо учитывать физику игрового мира.
Хотя бы самое элементарное - попадание выстрелов по цели. WPF анимация на это, в принципе, не способна.

Она может использоваться там где нет необходимости отслеживать взаимодействие анимированного объекта с другими.
Допустим, отобразить анимацию взрыва, после которого всё в таком-то радиусе уничтожено. С Модели просто придёт команда на анимацию и изменится состояние объектов на "уничтожен".

Когда-то помогал делать простенькую аркаду. Если хотите посмотрите https://github.com/EldHasp/Invasion-of-gooks

Добавлено через 7 минут
кружок-ДДТ, вы всё пытаетесь доказать, что WPF решение возможно сделать без нормального MVVM.
Это и так понятно.
Вопрос не в том, что без MVVM приложение WPF не сделать.
А в том, что без MVVM его реализовать сложнее и чем больше приложение тем разница существенее.
На самом деле большие приложения, требующие усилий коллектива не сделать без активного применения ООП со всеми его "прелестями": наследование, полиморфизм, разделение кода и т.п., и т.д.
А любой паттерн (MVC, MVP, MVVM и т.д.) - это концепция применения ООП для тех или иных задач.
WPF создан как часть инструментария для создания приложения в паттерне MVVM.
Поэтому от MVVM в решении WPF никуда не деться.

Нет MVVM - нет "магии" WPF.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
15.03.2020, 20:29  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Но сразу уточню. WPF анимация мало пригодна для игровой графике, так как в игровой графике надо учитывать физику игрового мира.
Хотя бы самое элементарное - попадание выстрелов по цели. WPF анимация на это, в принципе, не способна.
Так и знал, что вы подумаете, что я какую-то игрушку сочиняю. Увы нет, не игрушку. Но рад, что приведенный пример "очередь" оказался удачным и вы поняли, что я имею ввиду.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вы всё пытаетесь доказать, что WPF решение возможно сделать без нормального MVVM.
Это и так понятно.
Совсем нет. Делать небольшие заготовки для последующего использования в большом проекте совершенно не требует создания в проектах-заготовках ViewModel и так далее. Тут вы не угадали.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
18.03.2020, 13:08  [ТС]
Элд Хасп, можете глянуть двух координатный, рисует хорошо, но не стирает слева направо.

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
<Window.Resources>
 
        <Storyboard x:Key="Storyboard.Draw">
            <DoubleAnimation
                Storyboard.TargetProperty="X2"
                From="0"
                To="530"
                Duration="0:0:5"/>
            <DoubleAnimation
                Storyboard.TargetProperty="Y2"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>
 
        <Storyboard x:Key="Storyboard.Erase">
            <DoubleAnimation 
                Storyboard.TargetProperty="X1"
                From="0"
                To="530"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="Y1"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>      
    </Window.Resources>
CB

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
54
55
56
 public partial class MainWindow : Window, INotifyPropertyChanged
    {
 
        #region Событие PropertyChanged и Метод для вызова события PropertyChanged
        /// <summary>Событие для извещения об изменения свойства</summary>
        public event PropertyChangedEventHandler PropertyChanged;
 
        /// <summary>Метод для вызова события извещения об изменении свойства</summary>
        /// <param name="propertyName">Изменившееся свойство</param>
        public void OnPropertyChanged([CallerMemberName]string propertyName = "")
            => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        #endregion
 
        public MainWindow()
        {
            InitializeComponent();
 
            this.DataContext = this; 
 
 
            
        }
        
 
        // создаем свойство  
        private bool? _input;
        public bool? Input
        {
            get { return _input; }
            set
            {
                _input = value;
                OnPropertyChanged();
            }
 
            
        }
 
 
        // Вар 2
        private void input_btn_Copy_Click(object sender, RoutedEventArgs e)
        {
            Input = true;
            
        }
 
        // Вар 2
        private void output_btn_Copy_Click(object sender, RoutedEventArgs e)
        {
 
            Input = false;
           
        }
 
       
    }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.03.2020, 13:36
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
рисует хорошо, но не стирает слева направо.
Пропишите обе точки в обеих анимациях.
Если не получится - дайте полный код XAML - может ошибка где-то в другом месте.
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
<Window.Resources>
 
        <Storyboard x:Key="Storyboard.Draw">
           <DoubleAnimation 
                Storyboard.TargetProperty="X1"
                From="0"
                To="0"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="Y1"
                From="0"
                To="0"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="X2"
                From="0"
                To="530"
                Duration="0:0:5"/>
            <DoubleAnimation
                Storyboard.TargetProperty="Y2"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>
 
        <Storyboard x:Key="Storyboard.Erase">
            <DoubleAnimation 
                Storyboard.TargetProperty="X1"
                From="0"
                To="530"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="Y1"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>      
            <DoubleAnimation
                Storyboard.TargetProperty="X2"
                From="530"
                To="530"
                Duration="0:0:5"/>
            <DoubleAnimation
                Storyboard.TargetProperty="Y2"
                From="18"
                To="18"
                Duration="0:0:5" />
    </Window.Resources>
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
18.03.2020, 14:12  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Пропишите обе точки в обеих анимациях.
Если не получится - дайте полный код XAML - может ошибка где-то в другом месте.
Это как бы улучшило ситуацию и вроде бы стирать начало, но если прерываешь на пол пути отрезок дальше не идет а прыгает вперед, а затем стирается.

В первом варианте с событиями ведет себя лучше.

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
<Window.Resources>
 
        <Storyboard x:Key="Storyboard.Draw">
            <DoubleAnimation
                Storyboard.TargetProperty="X2"
                From="0"
                To="530"
                Duration="0:0:5"/>
            <DoubleAnimation
                Storyboard.TargetProperty="Y2"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>
 
        <Storyboard x:Key="Storyboard.Erase">
            <DoubleAnimation 
                Storyboard.TargetProperty="X1"
                From="0"
                To="530"
                Duration="0:0:5" />
            <DoubleAnimation
                Storyboard.TargetProperty="Y1"
                From="0"
                To="18"
                Duration="0:0:5" />
        </Storyboard>
 
    </Window.Resources>
 
 
 <Line
                    Name="MyLine2"                    
                    Stroke="OrangeRed"
                    StrokeThickness="8">                    
                    <Line.Style>
                        <Style>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Input}" Value="true">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard x:Name="BeginStoryboardDraw" Storyboard="{StaticResource Storyboard.Draw}" />
                                    </DataTrigger.EnterActions>
                                    <DataTrigger.ExitActions>
                                        <StopStoryboard BeginStoryboardName="BeginStoryboardDraw" />
                                    </DataTrigger.ExitActions>
                                </DataTrigger>
 
                                <DataTrigger Binding="{Binding Input}" Value="false">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard x:Name="BeginStoryboardErase" Storyboard="{StaticResource Storyboard.Erase}" />
                                    </DataTrigger.EnterActions>
                                    <DataTrigger.ExitActions>
                                        <StopStoryboard BeginStoryboardName="BeginStoryboardErase" />
                                    </DataTrigger.ExitActions>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Line.Style>
                </Line>
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.03.2020, 14:49
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Это как бы улучшило ситуацию и вроде бы стирать начало, но если прерываешь на пол пути отрезок дальше не идет а прыгает вперед, а затем стирается.
В первом варианте с событиями ведет себя лучше.
Вы прямо хотите программу из анимации сделать.
Это всё делать целый головняк!

Как-то же надо устанавливать в каких координатах точки должны остановиться.
Если не на концах отрезка, то надо придумать как задать To для для двигающейся точки.
Как то надо передать текущие значения одной точки в аниматор другой точки.
Не знаю даже привязка такая сработает или нет.
И тогда ещё выйдет и переменная скорость движения.
Так как время у нас постоянно 5сек, а расстояние будет меняться.
Как с этим быть?

И вы слишком много требуете от XAML анимации.
Она просто на это не расcчитана.
Столько времени тратите на поиск решения того, что можно несколькими строками сделать сделать на C# в CB.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
18.03.2020, 15:16  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вы прямо хотите программу из анимации сделать.
Это всё делать целый головняк!
вариант 1 с event trigger работает же как надо. Просто что-то упускаю. Проблема скорее всего, что не запускается Storyboard.Erase. Не в самом Storyboard.Erase.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.03.2020, 16:15
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
вариант 1 с event trigger работает же как надо. Просто что-то упускаю. Проблема скорее всего, что не запускается Storyboard.Erase. Не в самом Storyboard.Erase.
Он работает с начала координат. Если вы прервёте стирание новым запуском, то тоже будет скачок.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.03.2020, 16:43
кружок-ДДТ, я только до компа добрался.
Запустил вашу анимацию - оказывается она не так работает как я думал по её коду.
Вы что хотите реализовать - словами опишите.

Добавлено через 6 минут
кружок-ДДТ, из последнего вашего варианта уберите стопы анимации и посмотрите что получится
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
        <Line
                    Name="MyLine2"                    
                    Stroke="OrangeRed"
                    StrokeThickness="8">
            <Line.Style>
                <Style>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Input}" Value="true">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard x:Name="BeginStoryboardDraw" Storyboard="{StaticResource Storyboard.Draw}" />
                            </DataTrigger.EnterActions>
                            <!--<DataTrigger.ExitActions>
                                <StopStoryboard BeginStoryboardName="BeginStoryboardDraw" />
                            </DataTrigger.ExitActions>-->
                        </DataTrigger>
 
                        <DataTrigger Binding="{Binding Input}" Value="false">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard x:Name="BeginStoryboardErase" Storyboard="{StaticResource Storyboard.Erase}" />
                            </DataTrigger.EnterActions>
                            <!--<DataTrigger.ExitActions>
                                <StopStoryboard BeginStoryboardName="BeginStoryboardErase" />
                            </DataTrigger.ExitActions>-->
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Line.Style>
        </Line>
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
18.03.2020, 17:56  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
кружок-ДДТ, из последнего вашего варианта уберите стопы анимации и посмотрите что получится
наши мысли совпали, методом научного тыка я таки добился работы "как надо". Хотел было вам писать, но вы уже успели ответить.
Второе можно не убирать из EnterAction. Первое да, нужно убрать. Влияет положительно.

Чего я хотел бы добиться. Сейчас подкинул вторую Line и посылаю за оранжевым отрезком зеленый. Все ОК. Но при этом у меня два свойства. Для оранжевой линии и для зеленой.
Размышляю как реализовать следующий алгоритм. Если первая еще не завершилась (не стерлась), запускаю вторую. Если вторая еще не завершилась (не стерлась) запускаю первую. От одного property.

От двух работает.
Идейку не подкинете?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
19.03.2020, 15:02
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
От двух работает.
Идейку не подкинете?
Чисто в XAML - не знаю.
Тем более "поймать" завершение анимации по-моему можно только через событие Completed.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2020, 15:02

StoryBoard vs View
Подскажите, сейчас штудирую XCODE по книжке, которая уже устарела (в то время самой актуальной версией iPhone был 4S). Так вот вопрос: ...

Иерархия StoryBoard
Вопрос простой. В родовой View я создаю еще какой-нибудь контейнер, пусть будет Scroll View. Далее я хочу создать какую-нибудь кнопку,...

Запуск Storyboard от property
Привет всем, что-то смотрю примеры в сети. все Storyboard запускаются от trigger разных внутри всяких там контролов. А если у меня...

Проблема с storyboard.settarget
Здравствуйте. Проблема с кодом из книги: storyboard.setTarget и storyboard.setTargetProperty выдают ошибки ...

MVC storyboard+ViewController
Добрый день коллеги, накипело несколько вопросов: 1. Где лучше кастомизировать UI элементы...До этого все делалось в UIViewContoller ? ...


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

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru