0
を停止:は、アプリケーションの私のメインウィンドウでWPFのアニメーション、動的なロードされたユーザーコントロール
<UserControl
x:Class="NotificationWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="Transparent" MouseEnter="UserControl_MouseEnter">
<Grid RenderTransformOrigin="0,1">
<Border BorderThickness="1" Background="Beige" BorderBrush="Black" CornerRadius="10">
<StackPanel Margin="20">
<TextBlock TextWrapping="Wrap" Margin="5">
<Bold>Besked fra podio</Bold><LineBreak /><LineBreak />
Her skal der være en podio notification!
</TextBlock>
<CheckBox Content="Check check" Margin="5 5 0 5" />
<Button Content="Klik på mig" HorizontalAlignment="Center" />
</StackPanel>
</Border>
<!-- Animation -->
<Grid.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard x:Name="sbMain">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)">
<SplineDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
<SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
<SplineDoubleKeyFrame KeyTime="0:0:4" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<Grid.RenderTransform>
<ScaleTransform ScaleY="1" />
</Grid.RenderTransform>
</Grid>
private void UserControl_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e) {
sbMain.Stop(); // not working
:
public MainWindow() {
InitializeComponent();
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => {
var workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFromDevice;
var corner = transform.Transform(new Point(workingArea.Right, workingArea.Bottom));
this.Left = corner.X - this.ActualWidth - 100;
this.Top = corner.Y - this.ActualHeight;
}));
NotificationWindow nw1 = new NotificationWindow();
spNotifiers.Children.Add(nw1);
}
私の通知は、このようになります
}
私はmouse_anterイベントを持っています。これはアニメーション/ストーリーボードを停止するはずですが、何を試してもアニメーションを止めることはできません。
アイデア?
もう一度BeginAnimationを呼び出し、2番目の引数をnullに設定してください。 – Zaki
と私が聞くことができる場合、最初の引数は何ですか? – danielovich
BeginAnimation((垂直スクロールプロパティ:HorizontalScrollProperty)、null);ソース:http://viblend.wordpress.com/2011/03/18/tip-stopping-an-animation-in-wpf/ – Zaki