현재 각 항목이 가로로 쌓여 있고 GridSplitter로 구분 된 ItemsPanel로 Grid를 사용하는 ItemsControl 용 ControlTemplate을 작성하려고합니다.ItemsPanel vs Grid vs GridSplitter
기본 목표는 동적으로 바인딩 가능한 ItemsControl을 갖는 것입니다. 여기서는 모든 항목이 행으로 쌓여 있고 각 항목은 스플리터로 크기를 조정할 수 있습니다.
내 머리를 감쌀 수없는 두 가지가 있습니다. GridSplitter가 각 항목 사이에서 자동으로 끝나는 방법은 무엇입니까? 각 항목에 대해 Grid.Column을 어떻게 설정합니까?
간단한 제어 템플릿으로는이 작업을 수행 할 수없는 경우 이와 비슷한 것을 구현하는 가장 일반적인 방법은 무엇입니까? 이것을 위해 새 ItemsControl을 작성해야합니까?
사용자 지정 ControlTemplates가있을 수 있도록 실제 (Grid) 분할 자 컨트롤이 필요합니다. 또한 세포 (GridLengthUnitType, 늘이기, 정렬)에 대한 추가 레이아웃 기능을 사용하는 것이 매우 편리하다고 생각합니다.
내 자신을 롤업 할 때 사용자 정의 ItemsControl (각 항목에 대해 스플리터를 생성 함)과 사용자 정의 패널 (onerow/onecolumn 그리드와 같이 동작 함 - 첨부 된 Grid.Row, Grid.Column 속성, .Orientation으로 충분할 것입니다.) Splitter 컨트롤을 사용할 수 있고 레이아웃 작업을 처리하는 방법을 알고 있습니다.
이 접근 방식에 대해 어떻게 생각합니까? 선호되었거나 좋은 방법입니까?
나는 행과 열이 섞여 있다고 생각합니다. 위에서 말했듯이 위의 시나리오에서는 항목이 한 행에 쌓이기를 원하기 때문에 (항목이 많아서) 항목의 열 사이에 많은 수의 gridsplitters를 추가해야합니다. 물론 똑같은 것이 수직 방향에 적용된다고 쉽게 상상할 수 있습니다. – bitbonk
확인. 그런 다음 행과 열을 전환하십시오. 그에 따라 내 대답이 바뀌 었습니다. –
실제 (Grid) Splitter 컨트롤이 필요하므로 사용자를위한 ControlTemplates가있을 수 있습니다. 또한 세포 (GridLengthUnitType, 늘이기, 정렬)에 대한 추가 레이아웃 기능을 사용하는 것이 매우 편리하다고 생각합니다. 그래서 사용자 정의 ItemsControl (각 항목에 대해 스플리터를 생성)과 사용자 정의 패널 (onerow/onecolumn 그리드와 같이 동작합니다.)이 필요합니다. 따라서 첨부 된 Grid.Row, Grid.Column 속성, .Orientation에 대한 필요성은 없습니다. 충분하다). 이것은 분배 자 제어를 취할 수 있으며 배치와 관련하여 분배자를 다루는 방법을 알고있다. – bitbonk