<SomeControl>
<Grid>
<SpecialButton/>
</Grid>
</SomeControl>
<Style TargetType="{x:Type local:SpecialButton}">>
...
<Setter Property="Template">
<Setter.Value>
...
<TextBlock/>
<TextBlock/>
</Setter.Value>
</Style>
은 "SomeControl은"컨트롤의 폭은 동적 - 즉, 화면 폭, 컨테이너 폭 등에 따라 동적으로 변경 될 수 있습니다. 따라서 "SpecialButton"의 너비를 계산하는 다른 방법을 사용합니다.
버튼의 TextBlock이 이 아니라면 버튼 자체 "SpecialButton"은 "SomeControl"컨테이너와 크기가 완벽하게 일치합니다.
그러나 TextBlock의 텍스트가 "SpecialButton"의 너비보다 길면 "SpecialButton"오른쪽 테두리가 사라지고 버튼이 실제로 나빠집니다. 즉, "SpecialButton"의 너비는 그리기가 잘 계산되지 않더라도 컨테이너의 너비로 유지됩니다.
너비를 정의하지 않고 TextBlock (또는 전체 Grid의 너비가 더 낫다) 을 제한하는 방법을 찾으려고합니다. 따라서 "SpecialButton"은 여전히 잘 그려지고 자식 오버플로는 무시됩니다. CSS의 {overflow : hidden}과 같은 어떤 것이 좋았을 것입니다 ...
참고 :
"SpecialButton"높이가 또한 제한되어 (수동으로 계산되기 때문에) 포장을 허용 할 수 없습니다.
단추의 최대 너비가 있고 줄 바꿈을 허용 할 수없는 경우 잘림을 허용 할 수 있습니까? 만족스럽고 예상되는 최종 결과는 무엇입니까? 버튼이 컨테이너 너비를 채울 때까지 계속 커지게하고 텍스트를 중단하고 자릅니다. – CodeWarrior
또한 답글을 upvoted하고 답변으로 표시 한 경우 질문에 대답하는 데 더 많은 사람들이 관심을 갖게 될 수도 있습니다. – CodeWarrior
예 잘라 내기를 허용 할 수 있습니다. 그게 내가 찾고있는 정확한 결과입니다. ** 현재 사용 가능한 최대 공간에 맞게 텍스트가 잘립니다. – Tomer