Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- kodility
- NDK
- dart
- C/C++
- 알고리즘
- RxJava
- UWP
- C
- C++
- 프로그래머스
- mfc
- 안드로이드 구글맵
- flutter firestore
- Kotlin
- Java
- Flutter TextField
- Python
- android architecture component
- Rxjava2
- 안드로이드
- RxAndroid
- Django REST Android
- android push
- 코틀린
- Django REST framework
- livedata
- FLUTTER
- Django REST
- Android
- Android P
Archives
- Today
- Total
개발하는 두더지
[C/C++/C#/UWP] XAML파일을 CS 코드로 대체하기 본문
엘리먼트나 컨트롤을 항상 XAML에서 인스턴스화할 필요는 없습니다. 대신 코드에서 만들 수 있는데
특별히 동일한 유형의 개체를 많이 만들어야 할 때 유용합니다. ( 루프순환이 없기때문)
XAML 편집기가 아닌 CS 코드 파일에서 직접 텍스트블럭을 생성해보도록 하겠습니다.
Grid 에 x;Name 속성만 사용합니다. 코드에서 사용할 Key 입니다.
MainPage.xaml
1 2 3 | <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" x:Name="contentGrid"> </Grid> | cs |
아래 기본 코드에서부터 시작하겠습니다.
MainPage.xaml.cs
1 2 3 4 5 6 7 8 9 10 | public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } } | cs |
this.InitializeComponent(); 아래에 다음 코드를 작성합니다.
1 2 3 4 5 6 7 8 9 | TextBlock txtblk = new TextBlock(); txtblk.Text = "Hello, Windows 10!"; txtblk.FontFamily = new FontFamily("Times New Roman"); txtblk.FontSize = 96; txtblk.FontStyle = FontStyle.Italic; txtblk.Foreground = new SolidColorBrush(Colors.Yellow); txtblk.HorizontalAlignment = HorizontalAlignment.Center; txtblk.VerticalAlignment = VerticalAlignment.Center; contentGrid.Children.Add(txtblk); | cs |
MainPage 생성자에서 InitializeComponent 호출 후에 코드를 삽입하는 것에 주목!
InitializeComponent 보다 먼저 TextBlock을 만들수는 있지만, InitializeComponent 후에 Grid에 추가를 해야합니다.
그 호출 이전에는 Grid가 존재하지 않기 때문입니다.
결과
다른 방식으로 TextBlock 만들기
객체 생성시 속성값으로 설정
1 2 3 4 5 6 7 8 9 10 11 | //2 TextBlock txtblk = new TextBlock { Text = "Hello, Windows 10!", FontFamily = new FontFamily("Times New Roman"), FontSize = 96, FontStyle = FontStyle.Italic, Foreground = new SolidColorBrush(Colors.Yellow), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; | cs |
Page 태그에서 XAML의 폰트 관련 속성을 설정하는 방법을 코드로 설정
1 2 3 4 5 6 7 8 9 10 11 | // Page 태그에서 XAML의 폰트속성을 설정하고, TextBlock에서 속성이 상속 this.FontFamily = new FontFamily("Times New Roman"); this.FontSize = 96; this.FontStyle = FontStyle.Italic; this.Foreground = new SolidColorBrush(Colors.Yellow); TextBlock txtblk = new TextBlock { Text = "Hello, Windows 10!", HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; | cs |
'C,C++' 카테고리의 다른 글
[C# / UWP ] UWP에서 Newtonsoft.json 사용하기 (1) | 2017.01.25 |
---|---|
[C/C++/C#/UWP] 다양한 텍스트 처리 방법 (0) | 2017.01.25 |
[C/C++/C#/UWP] UWP Command Bar 구현하기 (0) | 2016.10.25 |
[C/C++/C#/UWP] UWP 네비게이션 구현하기 (1) | 2016.10.25 |
[C/C++/C#/UWP] UWP SplashScreen (스플래쉬스크린) 구현하기 (1) | 2016.10.24 |
Comments