주 창에서 스토리 보드 한 쌍으로 애니메이션을 내보내는 사용자 정의 컨트롤이 포함 된 간단한 WPF 응용 프로그램이 있습니다. 나는 사용자 콘트롤의 불투명도 인 scaletransform.scalex와 scaletransform.scaley에 애니메이션을 적용하여 팝업을 보이거나 보지 않게합니다. 처음 실행될 때를 제외하고는 멋져 보입니다. 애니메이션은 3/10 분의 1 초가 걸릴 것으로 예상됩니다. 테스트를 진행하는 동안이 값을 증가 시켰습니다. 난 애니메이션의 속성 값이 기본값으로 예상대로되지 않는 문제가 있는지 확인하기 위해 초 단위로 기본값을 설정해 보았습니다. 그것은 아무것도하지 않았다. 나는 심지어 내 기본 설정 값을 설정하는 데 도움이 될지를 알기 위해로드 된 창에서 내 "숨김"애니메이션을 명시 적으로 호출하지만 작동하지 않습니다. 애니메이션을 처음 실행시킬 때 런타임에서 수행하는 초기화가 있습니까? UI를 보여주기 전에 명시 적으로 초기화를 호출 할 수있는 방법이 있습니까? 증상은 컨트롤이 첫 번째 애니메이션으로 약 2/10 초까지 보이지 않는다는 것입니다. 때로는 더 길어지고 컨트롤이 완전히 애니메이션 된 후에 표시됩니다 (불투명도와 크기는 마침내 나타날 때 최종 값입니다).WPF 애니메이션을 처음 실행
답변
애니메이션 전에 UserControl의 DataContext를 설정하는 것처럼 들립니다. 아마도 시각적 인 객체를 만들고 애니메이션이 시작될 때 시각적 트리에 추가하는 바인딩 작업이 진행 중일 것입니다. 이것은 애니메이션이 싸우고있는 처리를 필요로합니다. 이것을 방지하는 방법은 컨트롤을 인스턴스화 (DataContext를 사용하여 설정)하지만 숨김으로하므로 시각적 개체 생성을 애니메이션시 수행 할 필요가 없습니다. (동료 Tim Lee를 통해)
좋아요, 당신은 절대적으로 옳았습니다 ... 그리고 이것은 나의 초기 직감이었습니다. 그러나 런타임은 자신의 이익을 위해 너무 똑똑해 지려고합니다. 보기 (불투명도, 음수 여백, scaletransform, translatetransform)에서 어떤 방식 으로든 숨기려면 어떤 방법을 시도해도 똑같습니다. 볼 수 있도록 허용하는 경우 DataContext를 먼저 설정할 필요가 없습니다. 첫 번째 애니메이션은 부드럽게 진행됩니다. 마치 런타임이 실제로 볼 때 볼 수 있다고 생각하도록 런타임을 속일 필요가있는 것과 거의 같습니다. 즉, 또는 명시 적으로 시각적 트리를 작성하는 방법을 알아야합니다. 후자는 덜 해킹을 느낀다. – Rich
이 스레드는 고대이지만,이 문제를 어떻게 해결 했습니까? 각 컨트롤을 1 너비로 설정해도 도움이되지 않습니다. 저는 WPF에 비교적 익숙하지 않아 여기에 줄을 숨기지 않았습니다. – Harti
- 1. WPF 스토리 보드 애니메이션을 역전시키는 방법은 무엇입니까?
- 2. 얻기 처음 실행 조립 반환 내가 얻으려고
- 3. C# WPF - 처음 열리는 창을 변경하는 방법
- 4. WPF DataGrid에 내가 WPF의 데이터 그리드가 처음
- 5. WPF 마진 애니메이션을 프로그래밍 방식으로 제거
- 6. Inkcanvas 컨트롤에서 애니메이션을 만들고 싶습니다. WPF
- 7. WPF 애니메이션을 캡처하고 애니메이션 GIF로 내보내려면 어떻게해야합니까?
- 8. WPF : 구성 요소 목록에 애니메이션을 적용하는 방법?
- 9. WPF - 애니메이션을 별도의 스레드에서 대기 하시겠습니까?
- 10. WPF 가시성이 변경되면 애니메이션을 트리거 하시겠습니까?
- 11. C# 문제 WPF 실행
- 12. 메모리에서 WPF 어셈블리 실행
- 13. 처음
- 14. wpf 창 새로 고침이 처음 작동하면 멈 춥니 다.
- 15. UIImageView 애니메이션 처음 실행시 지연
- 16. WPF 형식의 코드 실행 닫기
- 17. WPF DependencyProperty 한 번만 실행
- 18. ()는 내가 처음 실행에 설정되지 않은 기본 설정을 읽어야이 코드를 가지고 처음 실행 플래그
- 19. 한 번만 jQuery 애니메이션을 실행 한 다음 다른 작업을 수행 한 다음 애니메이션을 뒤집습니다.
- 20. SwingWorker에서 SwingWorker를 실행 - 처음 하나가 멈출 때까지 기다림
- 21. Jquery 애니메이션이 처음 실행 된 후 왜 속도가 빨라 집니까?
- 22. Java WebStart JNLP : 처음 실행시 다른 코드 실행
- 23. Jquery Flexigrid는 flexigrid가 처음 실행 된 경우에만 다시로드합니다.
- 24. WPF adorner 레이어는 언제 처음 사용할 수 있습니까?
- 25. WPF Storyboard는 처음 실행될 때를 제외하고는 잘 작동합니다. 왜?
- 26. WPF ListView는 이벤트가 처음 발생한 후 SelectionChanged 이벤트를 발생시키지 않습니다.
- 27. Android - 애니메이션을 사용하는 아티스트
- 28. WPF - TextBlock의 이전 값과 현재 값을 기반으로 색상 애니메이션을 수행합니다.
- 29. WPF 애니메이션을 반복 할 때 이벤트 핸들러를 트리거하는 방법
- 30. WPF 애니메이션을 중지하고 스토리 보드는 xaml에서 시작하지만 코드 숨김에서 중지합니다.
첫 번째 애니메이션이 시작될 때/어때요? 또한 설명 된 증상에서 불투명도가 다른 비율로 변할 수있는 것처럼 들리거나/스케일 변형 후 나타납니다. – rmoore
첫 번째 애니메이션은 모든 애니메이션이 마우스 클릭으로 트리거되므로 트리거됩니다. 필요한 경우 처리 된 것으로 표시 할 수 있도록 코드 뒤에이 작업을 수행합니다. 불투명도는 다른 모든 애니메이션에서도 잘 작동합니다. 기본적으로 첫 번째 애니메이션과 다른 애니메이션 간의 코드에는 차이가 없습니다. WPF 런타임이 무언가를 최적화하면 (기본적으로 ScaleTransform과 Opacity에 의해 컨트롤이 숨겨 짐) 이것이 자동 메모리 최적화 또는 일부 비용을 지불하는 가격입니다. – Rich
WPF 런타임에서 "아,이 컨트롤은 ScaleTransforms와 Opacity가 0이므로 배트에서 바로 볼 수 없습니다. 나중에 동적으로로드 해 봅시다"라고 기대하고있는 동안 catchup을 재생합니다. 스스로를 시야에 활력을 불어 넣는다. – Rich