사용자 정의 컨트롤에 WPF 애니메이션을 쓰고 있습니다. 컨트롤의 높이가 명시 적으로 설정되어 있지 않습니다. 어떤 하위 컨트롤이 표시되는지에 따라 다릅니다. 일부 자식 컨트롤이 숨겨져있을 때 사용자 컨트롤의 높이를 부드럽게 줄이기 위해 애니메이션을 수행하고 있습니다.하위 컨트롤이 변경 될 때 WPF 컨트롤의 높이를 예측하는 방법
그러나 애니메이션의 끝 높이를 알지 못합니다. 자식 컨트롤이 숨겨져 있었는지 높이를 측정해야하지만 애니메이션을 수행하기 전에 컨트롤이 어떻게 보이는지 변경할 수는 없습니다. 이상적으로, 나는 다음과 같이 사용할 수있는 'FreezeDisplay'방법 원하는 :
public void HideSomeControls()
{
double targetHeight;
using (this.FreezeDisplay())
{
Control1.Visibility = Visibility.Hidden;
Control2.Visibility = Visibility.Hidden;
Control3.Visibility = Visibility.Visible;
targetHeight = this.ActualHeight;
}
this.BeginAnimation(HeightProperty, new DoubleAnimation(ActualHeight, targetHeight, ...));
}
를하지만 그 방법은 존재하지 않는 것 같습니다. 내가하고 싶은 것을 어떻게 성취 할 수 있습니까?