私は本当に明白な何かを見逃しているかもしれません。私はカスタムパネルを記述しようとしています。内容はいくつかの依存関係のプロパティに基づいてレイアウトされています(にはがありますのでDPにする必要があります)。Silverlightでカスタム依存関係プロパティをアニメートできますか?
ただし、私がこれらのプロパティの両方をアニメーション化するためにストーリーボードを実行しようとすると、SilverlightはCatastophic Errorをスローします。しかし、それらのうちの1つだけをアニメートしようとすると、正常に動作します。私のプロパティと「組み込み」プロパティ(Opacityなど)のいずれかをアニメートしようとすると、それも機能します。しかし、両方のカスタムプロパティをアニメーション化しようとすると、Catastrophicエラーが発生します。
他にも誰もが遭遇しますか?
編集:2つのDPSはscaleXプロパティとscaleYある
- 両方のダブルス。彼らは、パネル内の子どものXとYの位置を調整します。ここでは、そのうちの一つが定義されている方法は次のとおりです。
public double ScaleX
{
get { return (double)GetValue(ScaleXProperty); }
set { SetValue(ScaleXProperty, value); }
}
/// <summary>
/// Identifies the ScaleX dependency property.
/// </summary>
public static readonly DependencyProperty ScaleXProperty =
DependencyProperty.Register(
"ScaleX",
typeof(double),
typeof(MyPanel),
new PropertyMetadata(OnScaleXPropertyChanged));
/// <summary>
/// ScaleXProperty property changed handler.
/// </summary>
/// <param name="d">MyPanel that changed its ScaleX.</param>
/// <param name="e">DependencyPropertyChangedEventArgs.</param>
private static void OnScaleXPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MyPanel _MyPanel = d as MyPanel;
if (_MyPanel != null)
{
_MyPanel.InvalidateArrange();
}
}
public static void SetScaleX(DependencyObject obj, double val)
{
obj.SetValue(ScaleXProperty, val);
}
public static double GetScaleX(DependencyObject obj)
{
return (double)obj.GetValue(ScaleXProperty);
}
編集:私は(どのような場合には絶対に必要です)InvalidateArrangeの呼び出しでとせずに、それを試してみたし、結果は同じです。イベントハンドラは、致命的なエラーが発生する前に呼び出されることさえありません。