2012-03-20 3 views
0

줄 번호가있는 TextBox를 원합니다. 그래서 나는 왼쪽의 줄 번호에 하나의 작은 TextBox를 사용하고 텍스트 오른쪽에 또 하나의 큰 TextBox를 사용하기로 결정했습니다. 내 문제는 이제 Dockpanel에이 두 TextBoxes를 넣고 행 번호의 TextBox에 스크롤 막대가 없기 때문에 높이 차이가 필요하다는 것입니다. 그래서 왼쪽 TextBox를 단축해야합니다. 내 계획은 왼쪽 TextBox 아래에 빈 StackPanel을 넣는 것입니다. DockPanel이 원하는대로 내 컨트롤을 정렬하지 않기 때문에 문제가 발생합니다. 내가 가지고있는 유일한 방법은 수정 폭을 사용하는 것이지만 나는 그것을 원하지 않는다!WPF DockPanel - 주문 컨트롤

image

아니면 완전히 다른 길을 가야하나요?

답변

0

컨트롤에 스크롤 막대를 표시하지 않으려면 VerticalScrollBarVisibility를 disabled로 설정하십시오.

하지만 정확히 필요한 것은 아닌지 잘 모르겠습니다. 이렇게하면 줄 번호가 텍스트 상자로 스크롤되지 않습니다. dockpanel에서 두 개의 텍스트 박스를 넣는 것이 가장 좋을 것입니다. (비록 라인 번호가 편집 가능으로되어 있지 않다면, 대신 라벨을 사용하고 싶을 것입니다.) dockpanel에서 dock 패널을 scrollviewer로 포장하십시오.

1

왜이 컨트롤을 빌드해야하는지 모르지만 WPF와 비슷한 것을 찾을 수 있습니다. 이 링크 AvalonEdit을 참조하십시오. 텍스트 편집기 컨트롤입니다.

0

ScrollView를 사용해보십시오. 아래의 코드는 그 아이디어를 보여줍니다. 그러나 나는 수평 스크롤을 가능하게하는 해결책을 제시하지 못했다.

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <ScrollViewer Height="100"> 
      <DockPanel> 
       <TextBlock DockPanel.Dock="Left"> 
        <TextBlock.Inlines> 
         1<LineBreak/> 
         2<LineBreak/> 
         3<LineBreak/> 
         4<LineBreak/> 
         5<LineBreak/> 
         6<LineBreak/> 
         7<LineBreak/> 
         8<LineBreak/> 
         9<LineBreak/> 
         10<LineBreak/> 
         11<LineBreak/> 
         12<LineBreak/> 
         13<LineBreak/> 
</TextBlock.Inlines> 
       </TextBlock> 
       <TextBox AcceptsReturn="True" TextWrapping="Wrap"> 
        I want a TextBox with line numbers. So I decided to use one small TextBox for the line numbers on the left and another big one on the rigth for the text. My problem now is that I put these two TextBoxes into a Dockpanel and I need a Heigth difference because the TextBox for the line numbers should not have scrollbars. So I need to short the left TextBox. My plan is to put an empty StackPanel below the left TextBox. And I'm getting trouble because the DockPanel doesen't sort my controls like i want. The only way I got it was using a fix width but I don't want that! 
       </TextBox> 
      </DockPanel> 
     </ScrollViewer> 
    </Grid> 
</Window> 

그것은 어 Screenshot

+0

처럼 ... possiblly 나는 모든 답변을 읽어 보지 않았 .... 매트 Burland의 대답에서 중복되어 보인다. – Gqqnbig