2009-09-09 5 views
9

TextCompositionEventArgs 클래스를 이해하지 못합니다.WPF : 클래스 TextCompositionEventArgs을 (를) 이해할 수 없습니다.

ControlText, SystemText, Text라는 문자열 형식의 멤버가 있습니다. 그런 다음 ControlText, SystemText 및 Text 멤버를 다시 포함하고 SystemCompositionText 및 CompositionText 필드를 포함하는 TextConmposistion 필드가 있습니다.

public class TextCompositionEventArgs : InputEventArgs 
{ 
    .. 
    public string ControlText { get; } 
    public string SystemText { get; } 
    public string Text { get; } 
    public TextComposition TextComposition { get; } 
} 

public class TextComposition : DispatcherObject 
{ 
    .. 
    public string CompositionText { get; protected set; } 
    public string ControlText { get; protected set; } 
    public string SystemCompositionText { get; protected set; } 
    public string SystemText { get; protected set; } 
    public string Text { get; protected set; } 
} 

두 텍스트 구성원이 키보드로 입력 한 텍스트를 포함하는 것, 다른 모든 필드는 빈 문자열이 포함되어 있습니다.

이 필드는 어떤면에서 차이가 있으며 무엇에 좋은가요?

답변

11

TextCompositionEventArgs는 텍스트를 처리하는 동안 변경 내용을 처리하므로 텍스트를 처리하는 많은 속성과 구체적으로 변경되는 내용이 있으며 사용 방법은 처리중인 이벤트에 따라 다릅니다.

기본적인 것들

이해하기 :

  • 텍스트 :이 포함 ​​된 이벤트를 발생하는 실제 텍스트 - 일반적으로 사용자가 입력 한 텍스트

  • SystemText : 시스템 텍스트 이벤트를, 즉 포함되어있는 경우 Alt + 문자를 누르면 이벤트가 여기에 표시됩니다. 이것은 일반적으로 텍스트 상자와 같은 컨트롤에서 텍스트에 영향을주지 않는 키 입력입니다.

  • 제어 텍스트 : 제어 텍스트 이벤트입니다. 즉, Ctrl + 문자를 누르면 여기에 표시됩니다. SystemText와 유사합니다.

일반적으로 표준 "텍스트"이벤트를 찾고 있다면 일반적으로 "텍스트"속성을보고 싶을 것입니다. 자세한 내용은 Input Overview을 참조하십시오.

+0

TextCompositionEventArgs 클래스에서 ControlText, SystemText, Text가 중복/중복되는 이유를 알고 계십니까? – codymanix

+0

그들은 그렇지 않습니다. 예를 들어 ControlText는 Ctrl 키를 누를 때 발생하는 테스트입니다. 이러한 키 입력은 텍스트에 표시되지 않습니다. –

+0

중복 된/중복으로 무엇을 의미하는지 알 수 있도록 내 질문과 삽입 된 코드를 편집했습니다. – codymanix