커스텀 컨트롤과 사용자 컨트롤
사용자 컨트롤과 커스텀컨트롤의 차이에 대한 설명을 읽고 있습니다.예를 들어 http://www.wpftutorial.net/CustomVsUserControl.html
예를 들어, 데이터 그리드의 항목에서 값을 변경하는 2개의 콤보 박스를 가진 데이터 그리드의 단순한 구성을 만들고 싶습니다.여러 번 사용할 예정이기 때문에 이에 대한 특정 컨트롤을 만들고 싶습니다.뒤에 있는 논리를 구현하고 xaml 호출에서는 항목만 지정하면 됩니다.원천.
이 예에서는 사용자 또는 사용자 정의 컨트롤을 생성해야 합니까?속성 및 논리를 갖게 되므로 이 컨트롤에 뷰 모델을 사용해야 합니까?
편집: 이 두 가지 옵션을 개념적으로 명확하게 구분한 기사를 알고 계십니까?
선택은 사용자 제어와 커스텀 제어뿐 아니라 사용자 제어, 커스텀 제어, 컨트롤 템플릿 커스터마이즈, 데이터 템플릿 커스터마이즈, 헤더 템플릿(수집 기반 컨트롤용), 첨부 속성 중 하나입니다.Control Authoring 개요 참조
나는 배려의 순서에 따라 간다.
Attached Properties : 기능할 수 있다면 Attached Properties를 사용합니다.예: 숫자 텍스트 상자입니다.
Control Template : 컨트롤 템플릿을 커스터마이즈하여 요건을 충족할 수 있을 때 사용합니다.예: 순환 진행률 막대.
커스텀 컨트롤:컨트롤 템플릿에서 할 수 없는 경우 커스텀 컨트롤을 사용합니다.단, 이미 존재하는 컨트롤을 커스터마이즈/확장해야 합니다.예: GridView의 헤더 행을 기반으로 한 정렬, 필터링(GridView는 메트로 앱에 존재하며, 예제를 설명하기 위해 사용됨)
사용자 제어:별로 선호되지 않는 것.작문이 필요한 경우에만 커스텀 컨트롤을 사용하여 작문을 할 수 없습니다.예시와 같이 콤보박스 2개와 데이터그램 1개입니다.사용자 컨트롤은 커스텀 컨트롤 또는 컨트롤 템플릿을 통해 이용할 수 있는 심리스한 외관 기능을 제공하지 않습니다.
할 수 과 커스텀 컨트롤이 있음을 이해하고 .UserControls을 사용하다
A UserControl들어 해야 하는 응용 여러 관련 하여 모든 프로그램 에서 이 할 수 .예를 들어 연락처 세부사항을 편집해야 하는 응용 프로그램이 여러 곳에 있는 경우 관련 코드가 있는 제출 버튼을 사용하여 레이아웃된 모든 데이터의 라벨과 텍스트필드가 있는 커스텀컨트롤을 생성하여 응용 프로그램 전체에서 이 컨트롤을 재사용할 수 있습니다.
은 커스텀 컨트롤 중 입니다.WPF 클래스. E.G.Control,ContentControl코드로 작성해야 합니다. 있습니다(해 보세요).TextBox,ComboBox,Label(이럴 필요는 없지만) 전체적으로 동작하는 것이 아니라,
UserControl with ' ' ' ' ' ' ' 、 ' 、 s 、 s 、 s 、 s 、 s 、 s 、 s 、 s 、 s s 、WPF시각적으로 디자인할 수 있기 때문입니다.
은 안안 a 로 하는 것이 .UserControl 할 수 WPF커스텀 컨트롤로서 컨트롤을 작성하려면 , 다음의 조작에 대한 지식이 필요합니다.ControlTemplate §Style컨트롤의 룩앤필을 정의하려면 , 독자적인 것이 필요하게 됩니다.
모든 것을 고려해 볼 때 컨트롤이 올바르게 동작하는 한 어떤 접근 방식을 사용하든 상관없습니다.
같은 문제에 대한 두 가지 접근 방법의 예는 이 게시물을 참조하십시오.포스트 작성자는 주요 콘텐츠 앞에 모달 콘텐츠를 표시할 수 있는 컨트롤을 원했습니다.포스트 작성자는 실제로 자신의 질문에 대해 그것을 구현함으로써 대답했습니다.UserControl커스텀 컨트롤로서 컨트롤을 작성하는 투고에 답변을 추가했습니다만, 양쪽의 최종 효과는 동일합니다.
뷰 모델이 있고 뷰 모델을 작성하려면 User-Control을 사용합니다.
특정 뷰 모델이 없는 Autonomous Control이 필요한 경우
커스텀 컨트롤이 필요할 수도 있습니다.필요한 기능 전체가 다른 컨트롤에 이미 존재하는 경우 기존 컨트롤 템플릿을 재정의해야 합니다.
(예: 다이아몬드 모양의 버튼의 경우 버튼 컨트롤 템플릿을 덮어쓸 필요가 있습니다.)attached-properties 및 attached-behaviors에 대해서는 더 많은 속성으로 확장할 컨트롤이 있거나 기본 동작과 약간 다른 동작을 할 때 유용합니다.
OP가 기술한 구성의 경우, 사용자 제어 또는 사용자 지정 제어 중 하나로 달성할 수 있습니다.특정 뷰 모델이 제공되지 않고 "input"은 항목 모음에 바인딩된 속성일 뿐이므로 커스텀 컨트롤을 선호합니다.
아, 그리고 조금 늦어서 죄송합니다.
가장 좋은 설명은 msdn에 있습니다.CustomControl은 "가상" 이름에 가깝습니다. WPF에는 "CustomControl"이라는 클래스가 없습니다.이 클래스는 WPF 제어 클래스 중 하나에 새로운 클래스 빌드를 작성하는 것을 의미합니다.Control,ItemsControl, 예를 들어 '조절'을 들 수 있습니다.TextBox ★★★★★★★★★★★★★★★★★」Button.
사용자 제어의 경우 사용자 제어로 충분합니다. CustomControl을 만드는 것은 쉽게 피할 수 있습니다.나쁜 것은 아니지만 많은 사람들, 특히 WinForms에서 온 WPF 초보자들은 필요 이상으로 세분화하는 경향이 있습니다.
컨트롤 구축이 처음이라면 VS를 통해 인터페이스를 보다 쉽게 설계할 수 있으므로 UserControl을 권장합니다.커스텀 컨트롤은 더 강력하지만 컨트롤의 로직과 인터페이스를 명확하게 분리해야 하기 때문에 좀 더 준비가 필요합니다.
디자인할 수 .CustomControl ★★★★★★★★★★★★★를 작성한다.UserControl ) 합니다.삼일 inside의 ControlTemplate ★★★★★의CustomControl( ( ( ( ( ( ( ( ) ) 。
내 기억이 맞다면, Blend에서 CustomControl 템플릿을 시각적으로 직접 디자인할 수도 있습니다.
물론 Wip CustomControl을 창에서 인스턴스화하고 Window의 Designer 보기를 VisualStudio에서 컨트롤의 xaml 보기 위에 새 패널로 배치할 수도 있습니다.스타일 템플릿의 일부 xaml 바인딩은 재구성할 때까지 Designer에 이렇게 표시되지 않습니다.
【임호 GUI는 주로 시각적인 것으로, 코드로 작성해서는 안 되며, 작성할 필요도 없습니다.]
커스텀 컨트롤을 작성하려면 사용자 컨트롤로 구현해야 합니다.사용자 자신의 사용자 컨트롤을 사용자 정의 컨트롤이라고 합니다.그것은 꽤 간단하다.
UserControl은 커스텀콘텐츠를 저장하기 위한 기본 클래스입니다.
<UserControl>
Your custom WPF content
</UserControl>
나는 그 기사에 전적으로 동의하지는 않는다.그러나 이 경우 UI에서 후자를 재사용할 수 있는 UserControl이 필요합니다.
언급URL : https://stackoverflow.com/questions/11247708/custom-vs-user-control
'programing' 카테고리의 다른 글
| Git - 메서드/함수의 변경 이력은 어떻게 표시합니까? (0) | 2023.04.09 |
|---|---|
| 문자열에서 슬래시 발생 횟수를 찾는 방법 (0) | 2023.04.09 |
| WooCommerce 3에서 'woocommerce_grouped_children_args' 필터가 제거되었기 때문에 제품 자식을 그룹화하여 주문할 수 있습니다. (0) | 2023.04.04 |
| 데이터베이스 문서 작성 방법 (0) | 2023.04.04 |
| 리액트 라우터 네비게이션바 예시 (0) | 2023.04.04 |