powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Снова вопрос с DataGrid - анимация первой строки
5 сообщений из 5, страница 1 из 1
Снова вопрос с DataGrid - анимация первой строки
    #39048416
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто-то знает:
как сделать цвет текста новой добавленной строки в Datagrid ярче, чем остальные строки в первые 5 секунд, а потом она бы снова стала такой же как все строки?
Если это делается через анимацию, тогда скажите, пожалуйста, как?
...
Рейтинг: 0 / 0
Снова вопрос с DataGrid - анимация первой строки
    #39048460
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisSpМожет кто-то знает:
как сделать цвет текста новой добавленной строки в Datagrid ярче, чем остальные строки в первые 5 секунд, а потом она бы снова стала такой же как все строки?
Если это делается через анимацию, тогда скажите, пожалуйста, как?
после добавления строки задай свойство isNew или какое то подобное, через Binding свяжи его со прикрепляемым свойством зависимости, затем когда свойство равно True запускай анимацию, по завершении которого изменяй свойство зависимости на False
цвет текста у всей строки можно изменять через TextElement.Foreground, это прикрепляемое и наследуемое свойство.
Анимацию запускай через триггер, который будет настроен для элемента DataGridRow, через свойство ItemContainerStyle для DataGrid
...
Рейтинг: 0 / 0
Снова вопрос с DataGrid - анимация первой строки
    #39048467
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtesпосле добавления строки задай свойство isNew или какое то подобное, через Binding свяжи его со прикрепляемым свойством зависимости, затем когда свойство равно True запускай анимацию, по завершении которого изменяй свойство зависимости на False
цвет текста у всей строки можно изменять через TextElement.Foreground, это прикрепляемое и наследуемое свойство.
Анимацию запускай через триггер, который будет настроен для элемента DataGridRow, через свойство ItemContainerStyle для DataGrid
Спасибо!!! Попробую.
...
Рейтинг: 0 / 0
Снова вопрос с DataGrid - анимация первой строки
    #39048473
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisSp,
вот рабочий пример, думаю его можно улучшить, мне лень
новая строка в DataGrid подсвечивается красным в течении 2 секунд, потом тухнет 2 секунды.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Application x:Class="WpfApplication13.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:wpfApplication13="clr-namespace:WpfApplication13"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
         <wpfApplication13:MainModel x:Key="MainModel"/>
    </Application.Resources>
</Application>


Код: 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.
<Window x:Class="WpfApplication13.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfApplication13="clr-namespace:WpfApplication13"
        xmlns:system="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525"
        DataContext="{StaticResource MainModel}">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="7*"/>
        </Grid.RowDefinitions>
        <StackPanel Orientation="Horizontal" Grid.Row="0">
            <Button Content="Add new" Margin="5" Padding="5" Click="Button_Click"/>
        </StackPanel>
        <DataGrid Grid.Row="1" ItemsSource="{Binding Pesones}">
            <DataGrid.ItemContainerStyle>
                <Style TargetType="{x:Type DataGridRow}">
                    <Setter Property="wpfApplication13:IsNewHelper.IsNew" Value="{Binding IsNew, Mode=TwoWay}"/>
                    <Setter Property="TextElement.Foreground" Value="Black"/>
                    <Style.Triggers>
                        <Trigger Property="wpfApplication13:IsNewHelper.IsNew" Value="True">
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)"  To="Red" Duration="0:0:2"/>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(wpfApplication13:IsNewHelper.IsNew)">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:2" >
                                                <DiscreteObjectKeyFrame.Value>
                                                <system:Boolean>False</system:Boolean>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                            <Trigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)"  To="Black" Duration="0:0:2"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.ExitActions>
                            </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.ItemContainerStyle>
        </DataGrid>
    </Grid>
</Window>



Код: 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.
using System.Windows;

namespace WpfApplication13
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private int _num = 0;
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var model = (MainModel) DataContext;
            var newPerson = new Person
            {
                Name = "Name " + _num,
                Age = _num, 
                IsNew = true
            };
            model.Pesones.Add(newPerson);
        }
    }
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System.Collections.ObjectModel;

namespace WpfApplication13
{
    public class MainModel
    {
        public MainModel()
        {
            Pesones = new ObservableCollection<Person>();
        }

        public ObservableCollection<Person> Pesones { set; get; } 
    }

    public class Person
    {
        public string Name { set; get; }
        public int Age { set; get; }
        public bool IsNew { set; get; }
    }
}
...
Рейтинг: 0 / 0
Снова вопрос с DataGrid - анимация первой строки
    #39048518
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman MejtesLisSp,
вот рабочий пример
Roman Mejtes, большое спасибо за ваш труд! Вы мне очень помогли!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Снова вопрос с DataGrid - анимация первой строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]