분류 전체보기 41

[WinUI3] 창 테두리 없애기, Title, Icon... 그리고 TitleBar.

1. 테두리 없애기 wpf에서는 xaml에 편리하게 없앨 수 있었던 테두리. 뭐.. 그렇다고 winui3에서 막 복잡하다는 건 아니지만... 뭔갈 더 설정해줘야 한다. public MainWindow() { this.InitializeComponent(); GetAppWindowAndPresenter(); _appWindow.Resize(new Windows.Graphics.SizeInt32(600, 600)); _presenter.SetBorderAndTitleBar(false, false); } private AppWindow _appWindow; private OverlappedPresenter _presenter; public void GetAppWindowAndPresenter() { var h..

C#/WinUI3 2023.02.05

[WinUI3] NoResize, 생성 시 창의 크기

WinUI3를 하면서 제일 건들고 싶었던 부분이다. (하나 더 있는데, 그건 WindowStyle. 나중에 얘도 어떻게 건들어야겠다) 얘는 wpf처럼 그냥 ResizeMode=ResizeMode.NoResize를 할 수 없고, window에도 Height=~~, Width=~~도 할 수 없다. 불-편 아니 이게 왜 안되냐고요 솔직히 디자이너 없는 것도 엄청 불편하다고요 ApplicationView.PreferredLaunchViewSize = new Size(600, 600); ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; 찾아보니 인터넷에서는 위의 코드를 작성해보라는데...

C#/WinUI3 2023.02.05

[WinUI3] FileOpenPicker 사용하여 이미지 불러오기

짜잔! 그냥 문서에 있는대로 코드 짜서 파일피커를 열려고 하면 저 망할 놈의 예외가 뜹니다! 와! 나 분명 문서에 있는대로 했는데! 하지만 다행히도(?) 두 줄만 추가하면 아주 잘 열리죠. FileOpenPicker picker = new FileOpenPicker(); picker.ViewMode = PickerViewMode.Thumbnail; picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".jpeg"); picker.FileTypeFilter.Add(".png"); /** 추가한 두 줄 */ // Get the curr..

C#/WinUI3 2023.02.04

[WinUI3] Color Picker 사용기

ColorPicker로 바인딩 연습하다가 하마터면 멀쩡한 요소 내비두고 뻘짓할 뻔해서 다시는 그러지 말라고 이번 글을 작성한다. xaml에 만 작성하여 앱을 만들면 다음과 같은 컬러피커를 볼 수 있다 파워포인트에서나 볼 수 있을법한 그라디언트... 나는 이런 그라디언트가 아니라 구글에서 color picker검색해서 나오는 이런 컬러피커를 원했다. 멍청하게도... "xaml은 이렇게는 못 만드는구나"해서 컬러피커를 만들 계획을 세웠다... ㅋㅋ 왜 그렇게 생각했을까.. 우연히 문서 뒤져보다가 찾아낸 프로퍼티 덕에 다행히도 굳이 만들 필요없이 바꿀 수 있었다. ColorSpectrumComponents="SaturationValue"일 때, color slide도 같이 변한다(당연하지만) 그래서 기억해야할..

C#/WinUI3 2023.01.28

[WinUI3] Navigation

1. 페이지 변경하기 네비게이션 하는 법은 간단하다 //BlankPage1.xaml.cs private void NextPage(object sender, RoutedEventArgs e) { this.Frame.Navigate(typeof(BlankPage2)); } 버튼을 누를 때, 위와 같이 작성하면 페이지가 잘 넘어간다. // - MainWindow.xaml private void frame_Loaded(object sender, RoutedEventArgs e) { frame.Navigate(typeof(BlankPage1)); } //Window는 Page가 아니여서 그런지 Navigate가 안 되는 것 같다 //그래서 Frame 넣고 Loaded 때 Navigate로 BlankPage1을 불..

C#/WinUI3 2023.01.27

[WinUI3] ToDo리스트 만들기 - 포기

취소선이 바인딩 과정에서 뭘 잘못했는지 아님 뭐가 잘못되었는지 모르겠어서 간단하게 버튼 2개와 텍스트 하나를 만들어 돌려본 결과 취소선이 그어지기만 할 뿐, 사라지지는 않았다. 바인딩 문제는 아닌 것 같다. 찾아본 결과, 텍스트블럭의 텍스트를 잠시 비운 다음 TextDecorations를 None으로 고친 후에 다시 텍스트를 채우면 정상적으로 취소선을 지울 수 있었다. 이를 ToDo리스트에 적용하려고 또 별짓을 다했다. 졸리다. 근데 결국 안 되더라고요... 그냥 투두리스트는 여기까지만 하고 포기할게요... 인터넷에서 참고한 자료들 https://github.com/microsoft/microsoft-ui-xaml/issues/1093 Setting TextDecoration = None on TextB..

C#/WinUI3 2023.01.26

[WinUI3] ToDo리스트 만들기(2)

그냥 Checkbox의 Content에 Add_TextBox.Text를 하면 바로 TextBox의 내용이 가져와졌다 그래서 여기까지는 잘 진행이 됐다. 그런데, CheckBox를 누를 때 글씨에 취소선을 긋고 싶었지만 여기서 막혀버렸다. 찾아보니 인터넷에서는 바인딩을 사용하는 방법이 올라와있었다. 그렇게 악으로깡으로 c#스크립트 내에서 어떻게든 처리해보려 노력했으나.. 결과는 실패! 아래는 노력의 흔적들 public class CheckBoxBinding: INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public bool isCBChecked; public bool IsCBChecked { get { ..

C#/WinUI3 2023.01.24

[WinUI3] ToDo리스트 만들기(1)

WinUI를 손에 익힐 겸 간단하게 ToDo리스트를 만들어보기로 했다 컨트롤에는 ListBox와 ListView 두 가지가 있다는데 둘의 차이는 아직 잘 모르겠다 어차피 간단하게 연습 겸 만들 거니까 그냥(아무거나) ListBox를 사용하겠다 진짜 간단하게 ListBox에 내용 추가하기 private void Add_Text(object sender, RoutedEventArgs e) { Display.Items.Add("내용 추가"); } 우측 상단의 허여멀건 버튼을 누를 때마다 "내용 추가"라는 글들이 하나씩 추가된다 위의 코드를 살짝 바꾸면 int i = 0; private void Add_Text(object sender, RoutedEventArgs e) { CheckBox cb = new Ch..

C#/WinUI3 2023.01.24

Xaml에서 한글 입력 시 깨질 때

이전 글에서 ContentDialog를 띄우는 데에는 성공했지만, 내용물이 한글이라 깨졌나보다. cs파일의 한글은 안 깨졌는데, xaml에 입력한 한글은 깨졌다. 다행히도 구글에 검색하니 빠르게 해결책을 얻을 수 있었다. (감사합니다. 덕분에 빠르게 해결할 수 있었습니다) 참고글: https://forum.dotnetdev.kr/t/xaml/893/7 Xaml에서 한글 입력 시 인코딩 에러 일단, 왜 그렇게 되었는지는 모르겠지만, 파일이 UTF-8 with BOM이어야만 Visual Studio 2019에서 UTF-8로 정상 처리가 됩니다. 안그러면 한글이 깨져서 컴파일시 오류가 날 수 있습니다. 오류가 나는 파일 forum.dotnetdev.kr 우선 한글이 입력된 xaml파일을 선택하고 '다른 이름으..

C#/WinUI3 2023.01.23

[WinUI3] ContentDialog 사용기

WinUI를 공부하면서 MessageDialog를 쓰려다가.. 못했다... 어떤 유튜브 영상에서는 MessageDialog를 사용하던데, WinUI 3 Gallery에는 검색도 되지 않고, learn.microsoft.com(이거 공식 문서인가요?)에서는 윈도우 10 이상에서는 MessageDialog 대신 ContentDialog를 권장한다고 한다. 그래서 ContentDialog를 사용하려다가 뭔 놈의 예외처리 때문에 자꾸 안되가지고 작성하게 되었다. 우선, 결과는 이러하다. 이하는 코드 //using문 생략 namespace WinUI_Test { public sealed partial class MainWindow : Window { public MainWindow() { this.Initiali..

C#/WinUI3 2023.01.23