uwp에서 Button 동적으로 추가하는 방법은 간단하다. 흡사 C#과 방법은 같다. 버튼 생성자를 만들어 속성을 추가한 후 부모 컨트롤에 추가해주면 된다. 다른 컨트롤들을 동적으로 추가하는 것은 같은 방법을 사용한다. 이것은 프로그램을 하다보면 자주 사용하는 것이기도 하다.
uwp Button
모든 프로그램들이 그렇듯 버튼 Button 은 프로그램에 어떠한 명령을 지시할 때 사용한다.
프로그램에서 동작을 실행하는 것을 이벤트 Event 라고 한다.
그렇기에 모든 실행가능한 컨트롤에는 이벤트 핸들러나는 것이 추가되어 사용자가 원하는대로 프로그램을 동작시킬 수 있다.
Button을 동적으로 추가하기
uwp 에서 Button 컨트롤을 동적으로 추가하는 것은 간단하다.
C# 과 방법이 같기 때문에 그리 어렵지 않다.
- Button 컨트롤 객체를 생성한다.
- 속성을 추가한다.
- 이벤트 핸들러를 추가한다.
아래의 코드를 보자.
xaml 에 적용한 StackPanel 에 Button 컨트롤을 동작으로 추가해 본다.
여기서 StackPanel 은 부모 컨트롤이고 동적으로 추가되는 Butotn 컨트를은 자식컨드롤이다.
부모컨트롤에 자식컨트롤을 추가하기 위해서는 부모컨트롤에 name 속성이 필요하다.
<!-- XAML -->
<StackPanel x:Name="sptb">
</StackPanel>
private void AddButton()
{
Button oButton = new Button();
oButton.Content = "동적버튼 1";
oButton.Click += OButton_Click;
this.sptb.Children.Add(oButton);
}
위의 코드를 보면 하나의 버튼 컨트롤을 동적으로 생성하여 StackPanel 에 추가하고 있다.
StackPanel 은 부모 컨트롤이고, 동적 생성된 Button 컨트롤은 자식 컨트롤이다.
Button 여러개를 동적으로 추가하기
하나를 추가했다면 여러개 추가하는 것은 더욱 간단하다.
여러개의 Button 컨트롤을 생성해주고 부모컨트롤인 StackPanel 에 전부 추가해 주면 된다.
아래의 코드를 보자.
private void AddButton()
{
Button oButton1 = new Button();
oButton1.Content = "동적버튼 1";
oButton1.Click += OButton_Click;
Button oButton2 = new Button();
oButton2.Content = "동적버튼 2";
oButton2.Click += OButton_Click;
Button oButton3 = new Button();
oButton3.Content = "동적버튼 3";
oButton3.Click += OButton_Click;
this.sptb.Children.Add(oButton1);
this.sptb.Children.Add(oButton2);
this.sptb.Children.Add(oButton3);
}
응용을 해보자.
위의 방법대로 버튼을 6개 추가해 보도록 한다.
부모컨트롤인 StackPanel 를 2개 만든다.
동적으로 버튼을 만들되 3개는 가로배열, 다른 3개는 세로로 배열한다.
StackPanel 의 속성은 이전글을 참고한다.
>>> uwp 화면 레이아웃 StackPanel 사용하기 <<<
<!-- xaml -->
<StackPanel x:Name="sptb">
</StackPanel>
private void AddButton()
{
Button oButton1 = new Button();
oButton1.Content = "동적버튼 1";
oButton1.Click += OButton_Click;
Button oButton2 = new Button();
oButton2.Content = "동적버튼 2";
oButton2.Click += OButton_Click;
Button oButton3 = new Button();
oButton3.Content = "동적버튼 3";
oButton3.Click += OButton_Click;
Button oButton4 = new Button();
oButton4.Content = "동적버튼 4";
oButton4.Click += OButton_Click;
Button oButton5 = new Button();
oButton5.Content = "동적버튼 5";
oButton5.Click += OButton_Click;
Button oButton6 = new Button();
oButton6.Content = "동적버튼 6";
oButton6.Click += OButton_Click;
StackPanel oStackPanel1 = new StackPanel();
oStackPanel1.Orientation = Orientation.Horizontal;
oStackPanel1.Children.Add(oButton1);
oStackPanel1.Children.Add(oButton2);
oStackPanel1.Children.Add(oButton3);
StackPanel oStackPanel2 = new StackPanel();
oStackPanel2.Orientation = Orientation.Vertical;
oStackPanel2.Children.Add(oButton4);
oStackPanel2.Children.Add(oButton5);
oStackPanel2.Children.Add(oButton6);
this.sptb.Children.Add(oStackPanel1);
this.sptb.Children.Add(oStackPanel2);
}
코드가 상당히 길지만 공통적인 부분은 같다.
컨트롤 객체를 생성하고 속성을 지정한 후 부모컨트롤에 넣어주면 된다.
'programming > UWP' 카테고리의 다른 글
uwp html 파싱 웹데이터 추출 하는 방법 (0) | 2021.04.20 |
---|---|
uwp 웹 데이터 스크래핑 크롤링 하기 (0) | 2021.04.19 |
uwp 텍스트박스 ( TextBox ) 텍스트블록 ( TextBlcok ) 사용하기 (0) | 2021.04.05 |
uwp 화면 레이아웃 StackPanel 사용하기 (0) | 2021.04.04 |
uwp 버튼에 이미지 추가 넣기 How to add image on a button in uwp (0) | 2021.04.02 |
댓글