だから、これは私のXAMLコードです:
<UserControl x:Class="TugasBesarTAM_Moses_1072089.Brick01"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Width="10" Height="5" Keyboard.KeyDown="UserControl_KeyDown">
<Canvas>
<Rectangle x:Name="Brick" Fill="YellowGreen"
Stroke="Black" StrokeThickness="1"
Width="20" Height="10"
Canvas.Left="-10" Canvas.Top="-5"
RenderTransformOrigin="0.5 0.5" MouseLeftButtonDown="Brick_MouseLeftButtonDown">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="Scale"/>
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Resources>
<Storyboard x:Key="sbdFade" Storyboard.TargetName="Scale">
<DoubleAnimation To="3" Duration="0:0:0.5" BeginTime="0:0:0" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleX"/>
<DoubleAnimation To="3" Duration="0:0:0.5" BeginTime="0:0:0" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleY"/>
<DoubleAnimation x:Name="Opacity" To="0" Duration="0:0:0.5" Storyboard.TargetName="Brick" BeginTime="0:0:0" Storyboard.TargetProperty="Opacity" Changed="Opacity_Changed" />
</Storyboard>
</Rectangle.Resources>
</Rectangle>
</Canvas>
そして、以下のC#コードを介してsbdFadeストーリーボードを呼び出したい
using System;
using System.Collections.Generic;
using System.Linq;
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.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
namespace TugasBesarTAM_Moses_1072089
{
/// <summary>
/// Interaction logic for Brick01.xaml
/// </summary>
public partial class Brick01 : UserControl
{
public Brick01()
{
InitializeComponent();
}
private void BallHit()
{
Storyboard storyBoard = FindResource("sbdFade") as Storyboard;
storyBoard.Begin();
}
private void Brick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
BallHit();
}
}
しかし、ユーザー コントロールを左クリックすると、ResourceReferencekeyNotFoundException が表示され、storyBoard が null になります。
xaml と c# のリソース キーは同じであるため、どこでエラーが発生したのかわかりません。
誰かが私の間違いに気づきますか?ありがとう。
編集:注:以下のコード(BallHitメソッド)も試しましたが、どちらの方法でも同じ例外が発生します
private void BallHit()
{
Storyboard storyBoard = (Storyboard)FindResource("sbdFade");
storyBoard.Begin();
}