2017-11-07 17 views
-1

격자 패널과 스택 패널에 여러 개의 버튼 컨트롤을 추가 할 수 있지만 패널을 추가 할 수 없습니다. Canvas 패널에 어떤 방법이 있나요?WPF에서 캔버스에 여러 개의 단추를 추가하는 방법은 무엇입니까?

그리드 및 스택 코드는 아래를 참조하십시오.

foreach (string subfolder in Directory.GetDirectories(path)) 
     { 
      ToggleButton btn = new ToggleButton(); 
      btn.Name = "btn" + column.ToString(); 
      btn.Content = subfolder.Substring(subfolder.LastIndexOf("\\") + 1); 
      btn.Tag = subfolder; 
      btn.Margin = new Thickness(15, 15, 10, 0); 
      btn.Width = 200; 
      btn.Height = 50; 
      btn.Checked += btn_Checked; 
      btn.Unchecked += btn_Unchecked; 
      btn.HorizontalAlignment = HorizontalAlignment.Left;     
      GridPanel.Children.Add(btn);//Adding controls to Grid Panel 
     } 

캔버스 패널에서도 동일한 작업을 수행하는 방법은 무엇입니까? 미리 감사드립니다.

+2

더 나은 : 코드 뒤에 UI 요소를 만들지 마십시오. 해당 ItemTemplate의 ToggleButton과 함께 ItemsControl을 사용하고 ItemsControl의 ItemsPanel에서 원하는 Panel을 사용하십시오. – Clemens

+0

@Clemens, WPF를 처음 사용합니다. 링크를 공유 할 수 있습니까? ItemsControl의 컨트롤을 동적으로 추가하는 방법 – Anjali

+0

@Anjali https://stackoverflow.com/questions/7177432/how-to-display-items-in-canvas-through-binding –

답변

0

정확히 동일한 방법으로 Canvas에 요소를 추가합니다. 당신이 Canvas 어떤 크기를 준 당신이 요소가 표시되지 않는 경우

Canvas.SetLeft(btn, 10.0); 
Canvas.SetTop(btn, 15.0); 
theCanvas.Children.Add(btn); 

것은, 당신이 있는지 확인해야합니다 : 그냥 Canvas 내에서의 위치를 ​​지정하는 요소의 Canvas.LeftCanvas.Top 연결된 속성을 설정

<Canvas x:Name="theCanvas" Width="100" Height="100" /> 
+0

나는 그것에 대해 연구하고 동일하게 업데이트 할 것이다. – Anjali