Canvas
에 "벽돌"배열을 그려야하는 WPF 프로그램이 있습니다. 각각 다른 벽돌 유형이 몇 가지 있습니다.XAML 템플릿에서 WPF 요소 배열 생성
각 벽돌 유형을 상당히 임의의 XAML 조각을 사용하여 그립니다.
<Canvas> <!-- or some other per-brick container -->
<Rectangle Fill="Brown" Stroke="Gray" StrokeThickness="0.1" Canvas.Left="-1" Canvas.Top="-1" Width="2" Height="2" />
<Ellipse Fill="Blue" Canvas.Left="-0.8" Canvas.Top="-0.8" Width="1.6" Height="1.6"/>
</Canvas>
는하지만 코드 숨김 번역하고 각 위치에 복사 회전이 조각 여러 번 복제 할.
내 벽돌 위치를 계산해야한다는 것을 제외하고는 ItemsControl
과 비슷합니다. 또한 ControlTemplate
과 비슷한 것으로 보이지만 문제를 해결할만큼 충분히 이해하지 못합니다.
어떻게해야하는지 설명 할 수 있습니까?
올바른 접근 방식 (일반적인 벽돌 개수는 약 20-100)입니다. 내가 모르는 것은 Canvas를 ItemsControl에 전달할 수 있다는 것입니다. 다른 질문에 대한 샘플 @ qntmfred의 대답은이를 수행하는 방법을 보여줍니다, 맞습니까? 일단 내가 일하면 당신의 대답을 받아 들일 것으로 기대합니다. –
그래, ItemsControl의 ItemsPanel을 ItemsPanelTemplate 안에 Canvas로 지정하면됩니다. –
지금까지 효과가 있습니다. 하지만 여러 Datatemplates를 사용하고 올바른 데이터 템플릿을 선택하는 방법을 이해하지 못합니다. (최악의 경우 최악의 경우 여러 ItemsControls를 사용할 수 있지만 잔인합니다.) –