Silverlight에서 사용자 지정 종속성 속성에 애니메이션을 적용할 수 있나요?

StackOverflow https://stackoverflow.com/questions/62382

  •  09-06-2019
  •  | 
  •  

문제

정말 분명한 것이 빠졌을 수도 있습니다.몇 가지 종속성 속성에 따라 내용이 배치되는 사용자 정의 패널을 작성하려고 합니다. 가지다 DP가 되는 것은 그들에게 애니메이션을 줄 수 있기를 원하기 때문입니다.)

그러나 이러한 두 속성에 애니메이션을 적용하기 위해 스토리보드를 실행하려고 하면 Silverlight에서 심각한 오류가 발생합니다.하지만 그중 하나만 애니메이션으로 만들면 제대로 작동합니다.그리고 내 속성 중 하나와 '내장' 속성(예: 불투명도)에 애니메이션을 적용하려고 하면 작동합니다.그러나 두 사용자 정의 속성을 모두 애니메이션화하려고 하면 치명적인 오류가 발생합니다.

다른 사람이 이것을 접했습니까?

편집하다:

두 개의 DP는 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 호출을 사용하거나 사용하지 않고 시도했는데(어쨌든 반드시 필요함) 결과는 동일합니다.치명적인 오류가 시작되기 전에는 이벤트 핸들러가 호출되지도 않습니다.

도움이 되었습니까?

해결책

Silverlight 2 Beta 2의 문서화된 버그입니다.동일한 개체에 대해 두 개의 사용자 지정 종속성 속성에 애니메이션을 적용할 수 없습니다.

다른 팁

OnPropertyChanged의 InvalidateArrange를 주석 처리하고 무슨 일이 일어나는지 살펴보겠습니다.

내 자신의 질문에 대답하는 것이 나쁜 형식이 아니기를 바랍니다.

Silverlight 2 릴리스 후보 0이 오늘 릴리스되었습니다. 이 문제를 테스트한 결과 수정된 것 같습니다.이제 테스트 패널의 두 Custom DP 모두 제대로 애니메이션화할 수 있으므로 앱이 예상대로 작동합니다.좋은데요.

이 RC는 개발자 기반 RC이므로 Silverlight의 표준 빌드는 업데이트되지 않았습니다.하지만 다음 달에는 완전히 출시될 것으로 예상됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top