programing

WPF 텍스트 상자의 다중 회선

skycolor 2023. 5. 7. 11:18
반응형

WPF 텍스트 상자의 다중 회선

저는 피드백을 보낼 수 있는 앱을 개발하고 있습니다.

기본적으로 나는 만들기 위해 노력하고 있습니다.TextBox설명을 위해, 하지만 나는 WinForms에 익숙합니다.MultiLine=true설정했습니다.MinLines3까지, 거기에 도달할 것이지만, 사용자가 이 블록의 아무 곳이나 입력할 수 있다면 좋을 것입니다. 예를 들어 Enter 키를 누르고 도트 포인트 같은 것을 할 수 있습니다.예:

- Item 1        blah
- Item 2                blahlb lahbvl   d

그러나 현재 텍스트는 모두 한 줄에 머물러 있습니다.

- Item 1         blah - Item 2                      blahb blahb blah

그러면 이러한 설명은 전송된 전자 메일 본문을 채우는 데 도움이 됩니다.이 문자열을 전자 메일 본문 문자열에 넣을 때 동일한 형식을 쉽게 유지할 수 없다면 의미가 없을 수 있습니다(입력할 때와 마찬가지로 전송할 때와 동일하게 표시됨).

원하는 것을 달성할 수 있습니까? 아니면 한 줄에 모두 텍스트로 남겨야 합니까?

가능하게 하다TextWrapping="Wrap"그리고.AcceptsReturn="True"텍스트 상자에 있습니다.

사용하도록 설정할 수도 있습니다.AcceptsTab그리고.SpellCheck.IsEnabled너무.

또한 저처럼 XAML에 직접 컨트롤을 추가하면(편집기를 사용하지 않고) 해당 두 속성을 설정한 후에도 사용 가능한 높이까지 확장되지 않아 답답할 수 있습니다.

TextBox를 확장하려면 다음을 설정합니다.Height="Auto".

업데이트:

돌이켜보면, 앱 리소스의 어딘가에 있는 애플리케이션의 높이를 어느 정도 표준으로 지정하는 텍스트박스의 기본 스타일 덕분에 이것이 필요했을 것이라고 생각합니다.이것이 당신에게 도움이 되었다면 이것을 확인해 볼 가치가 있을 것입니다.

여기 샘플이 있습니다.XAML그것이 허락할 것TextBox여러 줄 텍스트를 허용하고 자체 스크롤 막대를 사용합니다.

<TextBox
Height="200"
Width="500"
TextWrapping="Wrap"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"/>

WPF에 해당하는 유일한 속성은 다음과 같습니다.

Winforms 속성:TextBox.Multiline = true

는 WPF 속성입니다.

TextBox.AcceptsReturn = true 

또는

<TextBox AcceptsReturn="True" ...... />

다음과 같은 다른 모든 설정VerticalAlignement, WordWrap등, TextBox가 UI에서 상호 작용하는 방식만 제어할 뿐 영향을 미치지 않습니다.Multiline행동

@Andre Luus와 반대로 설정 Height="Auto"성공하지 못할 것입니다.TextBox늘이다.제가 찾은 해결책은VerticalAlignment="Stretch"

언급URL : https://stackoverflow.com/questions/2650144/multiline-for-wpf-textbox

반응형