2016-11-04 4 views
0

안녕하세요, 메인 윈도우의 배경 이미지가 희미 해지고 있습니다.배경 이미지 페이드 인

10 Dim storyboard__1 As New Storyboard() 
20 Dim duration As New TimeSpan(0, 0, 1) 
30 Dim animation As New DoubleAnimation() 

50 animation.From = 0.0 
60 animation.[To] = 1.0 
70 animation.Duration = New Duration(duration) 

90 Storyboard.SetTargetName(animation, "C:\Users\someone\Downloads\cabd.jpg") 
100 Storyboard.SetTargetProperty(animation, New PropertyPath(Control.OpacityProperty)) 

110 storyboard__1.Children.Add(animation) 
120 storyboard__1.Begin(Me.Background) 

오류가 Me.Background과 라인 (120)에 :

현재이 내 코드입니다. 가 '공공 과부하가 하위 (FrameworkElement으로 containingObject를) 시작'형식 '브러시'의 값이 'FrameworkElement'로 변환 할 수있는 접근이 인수로 호출 할 수있는 '시작하지'때문에

오류 BC30518 과부하 해상도가 실패 . 'Public Overloads Sub Begin (containingObject As FrameworkContentElement)': 'Brush'유형의 값을 'FrameworkContentElement'로 변환 할 수 없습니다. scrollView

mainWindow에서 이미지 페이드 애니메이션을 호출하기 위해서는 무엇이 누락 되었습니까?

답변

2

스토리 보드를 사용할 필요가 없습니다. 다만 대상 ImageBrushBeginAnimation 전화 :

참고로
Background.BeginAnimation(Brush.OpacityProperty, animation); // C# 

Storyboard.SetTargetName (일반적으로 XAML에 정의) 요소의 Name 사용합니다. "C:\Users\someone\Downloads\cabd.jpg"과 같은 파일 경로를 설정하는 것은 의미가 없습니다.


편집 : 당신은 물론, 예를 들어, 그것을 애니메이션을 시도하기 전에 Background 속성 변경 가능한 브러쉬 인스턴스를 할당해야 ImageBrush는 :

var bgBrush = new ImageBrush(new BitmapImage(new Uri(@"C:\Users\someone\Downloads\cabd.jpg"))); 
bgBrush.BeginAnimation(Brush.OpacityProperty, animation); 
Background = bgBrush; 
+0

나는의 오류 ** 객체가 밀봉하거나 동결되기 때문에 'System.Windows.Media.SolidColorBrush'의 '불투명도'속성을 애니메이션 할 수 없습니다 ** 것을 시도 할 때.. – StealthRT

+0

그래서 대상 요소의 배경에 ImageBrush를 지정하지 않으셨습니까? "배경 이미지가 희미 해지기"를 원한다고 말하지 않았습니까? – Clemens

+0

네,하지만 mainWindow에 이미 ** 배경 ** 속성이 있습니까? – StealthRT

관련 문제