Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1

Как сделать анимацию прозрачности окна при наведении курсора мыши и его ухода с окна

02.04.2013, 02:10. Показов 5387. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я сделал так (из класса убрал всё лишнее, только по теме оставил):
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
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Threading;
using Resources;
using YourAssistant.Settings;
 
namespace YourAssistant
{
    public partial class AlarmMessageWindow : Window
    {
        private readonly Window _owner;
        private readonly float _opacity;
        private DoubleAnimation _animationOpacityOff;
        private DoubleAnimation _animationOpacityOn;
 
        public AlarmMessageWindow(Window owner, float opacity)
        {
            InitializeComponent();
            InitializeOpacityAnimation(opacity);
            Opacity = opacity;
            _owner = owner;
        }
 
        public AlarmMessageWindow(AlarmClock ac, Window owner)
            : this(owner, ac.OpacityFormMsg)
        {
        }
 
        public AlarmMessageWindow(MessageSettings msgSettings, Window owner)
            : this(owner, msgSettings.OpacityFormMsg)
        {
        }
 
        private void InitializeOpacityAnimation(float opacity)
        {
            animationOpacityOff = new DoubleAnimation(opacity, 1d, new Duration(TimeSpan.FromMilliseconds(400)), FillBehavior.HoldEnd);
            animationOpacityOn = new DoubleAnimation(1d, opacity, new Duration(TimeSpan.FromMilliseconds(400)), FillBehavior.HoldEnd);
        }
 
        private void Window_MouseEnter(object sender, MouseEventArgs e)
        {
            BeginAnimation(OpacityProperty, _animationOpacityOff);
            Debug.WriteLine("Window_MouseEnter");
        }
 
        private void Window_MouseLeave(object sender, MouseEventArgs e)
        {
            BeginAnimation(OpacityProperty, _animationOpacityOn);
            Debug.WriteLine("Window_MouseLeave");
        }
    }
}
И всё бы хорошо, но при перетаскивании окна, после того как я перетащив окно отпускаю левую кнопку мыши, то срабатывают обе анимации в таком порядке: Window_MouseLeave, Window_MouseEnter. Как этого избежать?

Добавлено через 4 минуты
Если не совсем ясно какое мне нужно поведение... Объясняю. В настройках я выставляю прозрачность для окна сообщения. После того как окошко с сообщением выведено на экран, он имеет ранее выставленную ему прозрачность. Когда юзер наводит курсор мыши на окно, то оно становится непрозрачным, когда убирает курсор мыши, то снова становится прозрачным как и было выставлено ранее в настройках для этого окошка. Но если юзер навёл курсор мыши и начал перетаскивать окно, то после того как отпускает левую кнопку мыши срабатывыают 2 анимации и это выглядит как баг, короче не так как задумано, этого не должно происходить.

Добавлено через 2 минуты
Думаю как-то можно вообще в XAML сделать? Надо как-то биндиться к свойству в окне (в примере кода это поле float _opacity;, но свойство сделать понятно не проблема).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2013, 02:10
Ответы с готовыми решениями:

Положение курсора мыши относительно окна стороннего приложения
Доброго времени суток всем. Хотелось бы узнать, можно ли узнать координаты мыши относительно окна(т.е. есть окно, где то по этому окну...

Как получить Handle Окна при наведении мышкой
Здравствуйте! Как получить Handle Окна при наведении мышкой и как обозначить окно красным цветом?

Как отключить изменение цвета рамки TextBox при наведении курсора/выделение его
При использовании *TextBoxName*.BorderBrush рамка окрашивается, но если навести на TextBox курсор или перевести фокус, то цвет меняется....

12
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
02.04.2013, 12:04
Есть возможность кинуть проект либо часть проекта? Можно даже новый проектик с этим окном.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 12:29  [ТС]
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Можно даже новый проектик с этим окном
Ок. Сейчас сделаю.

Добавлено через 1 минуту
Я в бленде намутил такое дело, если его переписать в код с подстановкой значения прозрачности, возможно оно будет работать как надо.
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
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication3.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480" AllowsTransparency="True" WindowStyle="None" MouseLeftButtonDown="Window_MouseLeftButtonDown">
    <Window.Resources>
        <Storyboard x:Key="OnMouseEnter1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.595"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Storyboard x:Key="OnMouseLeave1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0" Value="0.595"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Mouse.MouseEnter">
            <BeginStoryboard Storyboard="{StaticResource OnMouseEnter1}"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseLeave">
            <BeginStoryboard x:Name="OnMouseLeave1_BeginStoryboard" Storyboard="{StaticResource OnMouseLeave1}"/>
        </EventTrigger>
    </Window.Triggers>
 
    <Grid x:Name="LayoutRoot"/>
</Window>
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 12:30  [ТС]
Так как оно уже работает как надо (вышеприведённый XAML). Просто тут жёсткие значения прозрачности, а у меня в проекте прозрачность можно задавать для окна:

А ну и там немного не так работает в XAML, при наведении курсора мыши окно наоборот становится прозрачным, а при покидании окна курсором окно становится непрозрачным, но это мелочи, поменять 2 сек.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 12:56  [ТС]
Кстати, если можно значения прозрачности как-то забиндить в XAML, это было бы вообще супер, чем код руками переписывать на C#.

Добавлено через 21 минуту
Вот какое мне нужно поведение:
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
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication3.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="320" Height="240" AllowsTransparency="True" WindowStyle="None" 
    MouseLeftButtonDown="Window_MouseLeftButtonDown" Opacity="0.6"
    Background="{x:Null}" WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <Storyboard x:Key="OnMouseEnter1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Storyboard x:Key="OnMouseLeave1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.6"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Mouse.MouseEnter">
            <BeginStoryboard x:Name="OnMouseEnter_BeginStoryboard1" Storyboard="{StaticResource OnMouseEnter1}"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseLeave">
            <BeginStoryboard x:Name="OnMouseLeave_BeginStoryboard1" Storyboard="{StaticResource OnMouseLeave1}"/>
        </EventTrigger>
    </Window.Triggers>
 
    <Border Background="#FFCC9155" CornerRadius="10" BorderThickness="0,0,5,5">
        <Border.Effect>
            <DropShadowEffect Opacity="0.4"/>
        </Border.Effect>
        <Grid x:Name="LayoutRoot"/>
    </Border>
</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
29
30
31
32
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
 
namespace WpfApplication3
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
 
            // Insert code required on object creation below this point.
        }
 
        private void Window_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            DragMove();
        }
    }
}
Сейчас сначала попробую всё это дело перенести в код, если не получится, то сделаю отдельный проект и выложу сюда.
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
02.04.2013, 13:40
Ну тебе то в коде можно только эту конструкцию
XML
1
2
3
4
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.6"/>
            </DoubleAnimationUsingKeyFrames>
создавать и в Children <Storyboard x:Key="OnMouseLeave1"> засовывать!

Даже можно так:
XML
1
2
3
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                   <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.6"/>
            </DoubleAnimationUsingKeyFrames>
Добавлено через 1 минуту
Немного дополню!
Создавать из кода их прийдётся потому что они Freezable
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 13:42  [ТС]
Я тут уже всё сделал.
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
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication3.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="320" Height="240" AllowsTransparency="True" WindowStyle="None" 
    MouseLeftButtonDown="Window_MouseLeftButtonDown" Opacity="0.6"
    Background="{x:Null}" WindowStartupLocation="CenterScreen" MouseDoubleClick="Window_MouseDoubleClick" >
    <!--<Window.Resources>
        <Storyboard x:Key="OnMouseEnter1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Storyboard x:Key="OnMouseLeave1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Window">
                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.6"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Mouse.MouseEnter">
            <BeginStoryboard x:Name="OnMouseEnter_BeginStoryboard1" Storyboard="{StaticResource OnMouseEnter1}"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseLeave">
            <BeginStoryboard x:Name="OnMouseLeave_BeginStoryboard1" Storyboard="{StaticResource OnMouseLeave1}"/>
        </EventTrigger>
    </Window.Triggers>-->
 
    <Border Background="#FFCC9155" CornerRadius="10" BorderThickness="0,0,5,5">
        <Border.Effect>
            <DropShadowEffect Opacity="0.4"/>
        </Border.Effect>
        <Grid x:Name="LayoutRoot"/>
    </Border>
</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
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
using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Animation;
 
namespace WpfApplication3
{
    public partial class MainWindow : Window
    {
        public MainWindow(double opacity)
        {
            InitializeComponent();
            Opacity = opacity;
            InitializeAnimations(opacity);
        }
//да, нужно именно параметром передавать, так как неизвестно куда запихают этот метод и 
//начальное значение у прозрачности может быть не то, которое мы ожидаем. К примеру, 
//сначала в конструкторе окно получает начальное значение прозрачности из настроек
//(переданный параметр в конструктор окна), а потом мы вызываем этот метод, который 
//берёт значение напрямую из свойства окна, то всё будет работать, но если его поставить
// раньше получения прозрачности окном и параметров, то будет ошибка, которую можно 
//не сразу отловить, у меня была такая проблема, поэтому лучше уж в метод передавать 
//сразу значение из настроек не обращаясь к окну
        private void InitializeAnimations(double opacity)
        {
            Storyboard sbOnMouseEnter = new Storyboard();
            var doubleAnimationUsingKeyFrames1 = new DoubleAnimationUsingKeyFrames();
            Storyboard.SetTargetProperty(doubleAnimationUsingKeyFrames1, new PropertyPath("(UIElement.Opacity)"));
            Storyboard.SetTargetName(doubleAnimationUsingKeyFrames1, Name);
            doubleAnimationUsingKeyFrames1.KeyFrames.Add(new EasingDoubleKeyFrame(1d,
                                                                                  KeyTime.FromTimeSpan(
                                                                                      TimeSpan.FromMilliseconds(400))));
            sbOnMouseEnter.Children.Add(doubleAnimationUsingKeyFrames1);
 
            Storyboard sbOnMouseLeave = new Storyboard();
            var doubleAnimationUsingKeyFrames2 = new DoubleAnimationUsingKeyFrames();
            Storyboard.SetTargetProperty(doubleAnimationUsingKeyFrames2, new PropertyPath("(UIElement.Opacity)"));
            Storyboard.SetTargetName(doubleAnimationUsingKeyFrames2, Name);
            doubleAnimationUsingKeyFrames2.KeyFrames.Add(new EasingDoubleKeyFrame(opacity,
                                                                                  KeyTime.FromTimeSpan(
                                                                                      TimeSpan.FromMilliseconds(400))));
            sbOnMouseLeave.Children.Add(doubleAnimationUsingKeyFrames2);
 
 
            EventTrigger eTriggerMouseEnter = new EventTrigger(MouseEnterEvent);
            eTriggerMouseEnter.Actions.Add(new BeginStoryboard {Storyboard = sbOnMouseEnter});
 
            EventTrigger eTriggerMouseLeave = new EventTrigger(MouseLeaveEvent);
            eTriggerMouseLeave.Actions.Add(new BeginStoryboard {Storyboard = sbOnMouseLeave});
 
            Triggers.Add(eTriggerMouseEnter);
            Triggers.Add(eTriggerMouseLeave);
        }
 
        private void Window_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            DragMove();
        }
 
        private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            Application.Current.Shutdown();
        }
    }
}
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
02.04.2013, 13:47
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
private void InitializeAnimations(double opacity)
        {
            Storyboard sbOnMouseEnter = new Storyboard();
            var doubleAnimationUsingKeyFrames1 = new DoubleAnimationUsingKeyFrames();
            Storyboard.SetTargetProperty(doubleAnimationUsingKeyFrames1, new PropertyPath("(UIElement.Opacity)"));
            Storyboard.SetTargetName(doubleAnimationUsingKeyFrames1, Name);
            doubleAnimationUsingKeyFrames1.KeyFrames.Add(new EasingDoubleKeyFrame(1d,
                                                                                  KeyTime.FromTimeSpan(
                                                                                      TimeSpan.FromMilliseconds(400))));
            sbOnMouseEnter.Children.Add(doubleAnimationUsingKeyFrames1);
 
            Storyboard sbOnMouseLeave = new Storyboard();
            var doubleAnimationUsingKeyFrames2 = new DoubleAnimationUsingKeyFrames();
            Storyboard.SetTargetProperty(doubleAnimationUsingKeyFrames2, new PropertyPath("(UIElement.Opacity)"));
            Storyboard.SetTargetName(doubleAnimationUsingKeyFrames2, Name);
            doubleAnimationUsingKeyFrames2.KeyFrames.Add(new EasingDoubleKeyFrame(opacity,
                                                                                  KeyTime.FromTimeSpan(
                                                                                      TimeSpan.FromMilliseconds(400))));
            sbOnMouseLeave.Children.Add(doubleAnimationUsingKeyFrames2);
 
 
            EventTrigger eTriggerMouseEnter = new EventTrigger(MouseEnterEvent);
            eTriggerMouseEnter.Actions.Add(new BeginStoryboard {Storyboard = sbOnMouseEnter});
 
            EventTrigger eTriggerMouseLeave = new EventTrigger(MouseLeaveEvent);
            eTriggerMouseLeave.Actions.Add(new BeginStoryboard {Storyboard = sbOnMouseLeave});
 
            Triggers.Add(eTriggerMouseEnter);
            Triggers.Add(eTriggerMouseLeave);
        }

даааааа!!!! Вы лёгких путей не ищете!
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 14:10  [ТС]
Цитата Сообщение от LeniumSoft Посмотреть сообщение
даааааа!!!! Вы лёгких путей не ищете!
Я сначала разобрался как вообще в коде это делается, потом могу начать всё максимально сокращать в коде, как раз воспользовавшись вашим советом. То есть, на самом деле я ищу лёгкие пути .

Добавлено через 23 секунды
Цитата Сообщение от Casper-SC Посмотреть сообщение
потом могу начать всё максимально сокращать в коде
В смысле обычно я так делаю, если не лень и оно того стоит.

Добавлено через 1 минуту
В любом случае, в будущем может это кому-то пригодиться, в качестве примера будет. Иначе я бы не заморачивался и не отписывал вообще сюда результаты.

Добавлено через 7 минут
Беда, в моей программе вылетает UnhandledException, которое перехватывается прогой и выводится на экран:
Исключение вызвано программой: YourAssistant, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null

Объект вызвавший ошибку: PresentationFramework

Сообщение описывающее ошибку: Не удается найти имя "" в области имен "YourAssistant.AlarmMessageWindow".

Метод класса: System.Windows.Media.Animation.Storyboar d; Имя метода: ResolveTargetName; Имя и путь к модулю: C:\Windows\Microsoft.Net\assembly\GAC_MS IL\PresentationFramework\v4.0_4.0.0.0__3 1bf3856ad364e35\PresentationFramework.dl l

в System.Windows.Media.Animation.Storyboar d.ResolveTargetName(String targetName, INameScope nameScope, DependencyObject element)
в System.Windows.Media.Animation.Storyboar d.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer)
в System.Windows.Media.Animation.Storyboar d.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer)
в System.Windows.Media.Animation.Storyboar d.BeginCommon(DependencyObject containingObject, INameScope nameScope, HandoffBehavior handoffBehavior, Boolean isControllable, Int64 layer)
в System.Windows.Media.Animation.BeginStor yboard.Begin(DependencyObject targetObject, INameScope nameScope, Int64 layer)
в System.Windows.Media.Animation.BeginStor yboard.Invoke(FrameworkElement fe)
в System.Windows.EventTrigger.EventTrigger SourceListener.Handler(Object sender, RoutedEventArgs e)
в System.Windows.RoutedEventHandlerInfo.In vokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlers Impl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl( DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(Rout edEventArgs e)
в System.Windows.MouseOverProperty.FireNot ifications(UIElement uie, ContentElement ce, UIElement3D uie3D, Boolean oldValue)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.Fi rePropertyChangeInAncestry(DependencyObj ect element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
в System.Windows.ReverseInheritProperty.On OriginValueChanged(DependencyObject oldOrigin, DependencyObject newOrigin, IList`1 otherOrigins, DeferredElementTreeState& oldTreeState, Action`2 originChangedAction)
в System.Windows.Input.MouseDevice.ChangeM ouseOver(IInputElement mouseOver, Int32 timestamp)
в System.Windows.Input.MouseDevice.PreProc essInput(Object sender, PreProcessInputEventArgs e)
в System.Windows.Input.InputManager.Proces sStagingArea()
в System.Windows.Input.InputManager.Proces sInput(InputEventArgs input)
в System.Windows.Input.InputProviderSite.R eportInput(InputReport inputReport)
в System.Windows.Interop.HwndMouseInputPro vider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
в System.Windows.Interop.HwndMouseInputPro vider.PossiblyDeactivate(IntPtr hwndCapture, Boolean stillActiveIfOverSelf)
в System.Windows.Interop.HwndMouseInputPro vider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в System.Windows.Interop.HwndSource.InputF ilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallback Operation(Object o)
в System.Windows.Threading.ExceptionWrappe r.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHel per.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

InnerException == null
Добавлено через 12 минут
Оказывается проблема была в том, что у окна не задано имя, а оно требуется тут:
C#
1
Storyboard.SetTargetName(doubleAnimationUsingKeyFrames2, Name);
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
02.04.2013, 14:15
Прилил проект!
Вложения
Тип файла: 7z WpfApplication1.7z (34.0 Кб, 27 просмотров)
0
02.04.2013, 14:16

Не по теме:

Прикольная теперь система управления вложениями!

0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.04.2013, 14:21  [ТС]
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Прилил проект!
Не. Там заданны жёстко значения прозрачности у EasingDoubleKeyFrame.

Добавлено через 25 секунд
И у меня почему-то открывается сразу окно 7, а не одно Oo

Добавлено через 1 минуту
В общем разберусь.
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
02.04.2013, 15:43
Цитата Сообщение от Casper-SC Посмотреть сообщение
Не. Там заданны жёстко значения прозрачности у EasingDoubleKeyFrame.
Да я просто для примера! Я переопределил конструктор и генерирую пять окон в которых Random-но ставится Opacity. Генерятся они в App. Тоесть одно окно в котором это всё задано в xaml и пять дополнительных окон!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2013, 15:43
Помогаю со студенческими работами здесь

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

Как сделать поворот изображения при наведении курсора мыши
Всем Привет! Подскажите как сделать поворот изображения при наведении курсора мыши? Вот как здесь:...

Изменение цвета Label при наведении на него курсора мыши. Как это сделать?
Изменение цвета Label при наведении на него курсора мыши. Как это сделать? Какое свойство надо поменять?

Как сделать так, чтобы при наведении курсора мыши на ссылку сразу же появилось примечание?
Как сделать такой-же скрипт: при наведении курсора мыши на ссылку сразу же появилось примечание, но только в этом же окне. Потому что в...

Как сделать чтоб кнопка в форме при наведении на нее мышкой убегала от курсора мыши?
Добрый вечер) подскажите пожалуйста, как сделать чтоб кнопка в форме при наведении на нее мышкой убегала от курсора мыши? VBA in MS...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru