Осваиваю эту чудесную технологию. Написал контрол, в котором кнопка с картинкой и попап. Прилепил анимацию на MouseEnter, которая увеличивает кнопку и "подпрыгивает" ее. Все работает, но если раз десять навести, то в какой-то момент оно все застревает в увеличеном виде и больше не реагирует. Что я делаю не так?
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.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
<UserControl
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"
x:Class="MKKControls.ToolTipImgButton"
x:Name="TTButton"
d:DesignWidth="50" d:DesignHeight="50">
<UserControl.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Width" Value="40" />
<Setter Property="Height" Value="40" />
<Setter Property="Margin" Value="5,5,5,5" />
</Style>
</UserControl.Resources>
<StackPanel>
<Button x:Name="_Button" Style="{StaticResource ButtonStyle}" RenderTransformOrigin="0.5,0.5">
<Image Name="_Image" Width="32" Height="32" Source="{Binding ElementName=TTButton, Path=ButtonImageSource}"/>
<Button.Effect>
<DropShadowEffect Opacity="0.5" Color="DarkGreen"/>
</Button.Effect>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="(Button.Width)"
To="45" Duration="0:0:0.3"
AutoReverse="True"
/>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="(Button.Height)"
To="45" Duration="0:0:0.3"
AutoReverse="True"
/>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation
Storyboard.TargetProperty="(Button.Margin)"
To="5,0,5,5" Duration="0:0:0.3"
AutoReverse="True"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<Popup IsOpen="{Binding IsMouseOver, ElementName=_Button, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
AllowsTransparency="True"
PopupAnimation="Slide"
>
<Border BorderBrush="DarkGreen"
Background="Yellow"
CornerRadius="5"
BorderThickness="2"
>
<TextBlock Name="_TextBlock" Text="{Binding ElementName=TTButton, Path=PopupText}" Margin="5,5,5,5"/>
</Border>
</Popup>
</StackPanel>
</UserControl>
Модератор: Тема перенесена из форума "WinForms, .Net Framework".