2011-12-01 9 views
3

WPF TextBox를 부모의 경계를 넘어서서 동적으로 성장시킬 수있는 방법이 있습니까?부모보다 더 크게 자랄 수있는 TextBox를 만드는 방법은 무엇입니까?

  1. 텍스트 박스가 성장할 수 넓은 : 예를 들어

    , 나는 (와이드) 매우 긴 될 수는 XPath 문자열을 입력하는 사용자가, 내가 두 가지 일 중 하나가 발생 싶습니다 수 있어요 사용자는 일정량의 문자를 입력합니다. 또는
  2. 사용자가 처음에 텍스트 상자를 클릭하면 '튀어 나오기'와 같이 매우 넓고 컨테이너보다 넓습니다.

이것이 가능합니까?

+0

대신 수평 스크롤 뷰어를 사용해 보셨습니까? – MichaelS

+0

나는 그것을 고려했다. 그러나 나는 그것과 내가 요구 한 것을 조합 할 필요가있다. – joepetrakovich

답변

3

음수 여백을 설정하여 부모보다 더 커질 수 있습니다.

다음과 같은 시도 할 수
<Grid> 
    <Grid Margin="50"> 
     <TextBlock Margin="0,0,-50,0" Text="This is a very long text." /> 
    </Grid> 
</Grid> 
+0

그래서 여백을 이동하고 동시에 너비를 늘려야합니까? 코드의 여백을 수정할 수 있습니까? 그렇다면 어떻게? txtBox.Margin.Left - = 10 시도했지만 허용되지 않습니다. – joepetrakovich

+0

TextBlock.HorizontalAlignment가 Stretch이고 Width가 설정되지 않은 경우 자동으로 커집니다. 'txtBox.Margin = new Thickness (txtBox.Margin.Right, ..., txtBox.Margin.Bottom)' – Jens

+0

과 같은 전체 여백을 설정해야합니다. 또한 부모 컨테이너가 대화 상자라고 간주하여이 작업을 수행 할 예정입니까? – joepetrakovich

0

하십시오 Canvas 내부 ParentControlTextBox 모두 넣어

  1. .
  2. 부모 제어에 상대적인 고정 또는 동적 좌표를 사용하여 TextBox을 찾습니다.
  3. Z- 색인을 ParentControl의 더 높은 값으로 설정하십시오.
  4. TextBox 이벤트를 기반으로 TextBox을 재배치하거나 사용하십시오.
관련 문제