-
C# WPF TextBlock이 렌더링 되지 않은 상태에서 ActualWidth 값이 계산되게 하는 방법닷넷/WPF 2023. 3. 28. 15:50반응형
만약 TextBlock의 ActualWidth에 따라서 어떤 작업이 진행되어야 하는 경우에, 뷰모델에서는 이 TextBlock의 정보를 알 수 없는 경우에 말이다. 뷰모델에서 내부적으로 TextBlock을 정의하여 사용한다면 TextBlock이 렌더링이 된 것이 아니기 때문에 ActualWidth 값은 null일 수 밖에 없다.
이 경우에 ActualWidth 값을 알 수 있게 계산할 수 있는 방법이다.
TextBlock textBlock = new TextBlock(); textBlock.FontSize = 14; textBlock.Text = SelectedText; textBlock.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); textBlock.Arrange(new Rect(textBlock.DesiredSize)); var duration = TimeSpan.FromSeconds(textBlock.ActualWidth / 50);
위 코드에서 Measure() 메서드와 Arrange() 메서드를 호출하여 TextBlock의 크기를 계산하고, ActualWidth 값을 가져왔다.
이 방법을 사용하면 TextBlock이 렌더링되지 않아도 ActualWidth 값을 정확하게 계산할 수 있다.
반응형'닷넷 > WPF' 카테고리의 다른 글
WPF Converter (컨버터, 값 변환기) (0) 2023.06.09 C# WPF에서 Binding(바인딩)이란? (0) 2023.04.07 C# WPF TextBlock의 Text를 오른쪽에서 왼쪽으로 애니메이션(BeginAnimation, 롤링) 하는방법 (0) 2023.03.21 [WPF WebBrowser] C#에서 자바스크립트 함수를 호출하거나 자바스크립트에서 C# 메소드를 호출하는 방법 (0) 2023.03.20 C# WPF에서 DataGrid에 데이터를 바인딩하는 간단한 예제 (0) 2023.03.09