5.3 StackPanel, 5.3.2 cs 소스 에서 코드로 배치하기
5.3.2 cs에서 소스를 이용하여 배치하기
이번에는 cs 파일에서 직접 소스를 작성하여 배치하는 것에 대해 살펴봅시다. 실습할 배치 모습은 앞에서 xaml 태그를 이용한 것과 같습니다.
[그림 5.11] StackPanel 사용 예제 실행 화면
먼저 WPF 응용 프로그램 프로젝트를 생성하세요.
[그림 5.12] WPF 응용 프로그램 프로젝트 생성
먼저, xaml에 Window 개체 부분을 제외한 부분을 없애는 것부터 시작합시다.
MainWindow.xaml |
<Window x:Class="StackPanel_실습___소스_코드로_배치.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:StackPanel_실습___소스_코드로_배치" mc:Ignorable="d" Title="Ex-StackPanel" Height="150" Width="300"/> |
먼저, ScrollViewer 개체를 생성하고 수평 스크롤 바가 필요한 경우에 자동으로 보일 수 있게 설정을 합시다.
//<ScrollViewer HorizontalScrollBarVisibility="Auto" >
sv = new ScrollViewer();
sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
this.Content = sv;
StackPanel을 생성하고 수평으로 배치하도로 Orientation 속성을 설정합니다. 그리고 ScrollViewer의 Content속성에 생성한 StackPanel 개체를 설정합시다.
//<StackPanel Orientation="Horizontal">
sp = new StackPanel();
sp.Orientation = Orientation.Horizontal;
sv.Content = sp;
자식 UI들은 단순히 StackPanle 개체의 Children 속성의 Add 메서드를 이용하여 추가만 하면 자동으로 순차적으로 배치합니다.
//<Button Content="Button 1"/>
Button btn1 = new Button();
btn1.Content = "Button1";
sp.Children.Add(btn1);
MainWindow.xaml.cs |
using System.Windows; using System.Windows.Controls;
namespace StackPanel_실습___소스_코드로_배치 { /// <summary> /// MainWindow.xaml에 대한 상호 작용 논리 /// </summary> public partial class MainWindow : Window { ScrollViewer sv; StackPanel sp; public MainWindow() { InitializeComponent(); LayOut(); }
private void LayOut() { //<ScrollViewer HorizontalScrollBarVisibility="Auto" > sv = new ScrollViewer(); sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; this.Content = sv; //<StackPanel Orientation="Horizontal"> sp = new StackPanel(); sp.Orientation = Orientation.Horizontal; sv.Content = sp; ChildrenAdd(); } private void ChildrenAdd() { //<Button Content="Button 1"/> Button btn1 = new Button(); btn1.Content = "Button1"; sp.Children.Add(btn1);
Button btn2 = new Button(); btn2.Content = "Button2"; sp.Children.Add(btn2); Button btn3 = new Button(); btn3.Content = "Button3"; sp.Children.Add(btn3); Button btn4 = new Button(); btn4.Content = "Button4"; sp.Children.Add(btn4); Button btn5 = new Button(); btn5.Content = "Button5"; sp.Children.Add(btn5); Button btn6 = new Button(); btn6.Content = "Button6"; sp.Children.Add(btn6); } } } |
실습 파일
관련 게시글
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.1 xaml 태그를 이용하여 배치
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.2 cs 소스에서 코드로 배치하기
[WPF] 5. 레이아웃과 Panel - 5.2 Canvas, 5.2.1 xaml 태그를 이용하여 배치
[WPF] 5. 레이아웃과 Panel - 5.2 Canvas, 5.1.2 cs 소스에서 코드로 배치하기
[WPF] 5. 레이아웃과 Panel - 5.3 StackPanel, 5.3.1 xaml 태그를 이용하여 배치
'프로그래밍 기술 > WPF' 카테고리의 다른 글
[WPF] 5. 레이아웃과 Panel - 5.5 DockPanel (1) | 2016.05.25 |
---|---|
[WPF] 5. 레이아웃과 Panel - 5.4 WrapPanel (0) | 2016.05.25 |
[WPF] 5. 레이아웃과 Panel - 5.3 StackPanel, 5.3.1 xaml 태그를 이용하여 배치 (0) | 2016.05.25 |
[WPF] 5. 레이아웃과 Panel - 5.2 Canvas, 5.2.2 cs 소스에서 코드로 배치하기 (0) | 2016.05.25 |
[WPF] 5. 레이아웃과 Panel - 5.2 Canvas, 5.2.1 xaml 태그를 이용하여 배치 (0) | 2016.05.25 |
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.2 cs 소스에서 코드로 배치하기 (0) | 2016.05.24 |
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.1 xaml 태그를 이용하여 배치 (2) | 2016.05.24 |
[WPF] 5. 레이아웃과 Panel (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.3 탐색 종합 세트, 마법사 (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.2 PageFunction을 이용한 구조적 탐색 (0) | 2016.05.24 |