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 hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
WindowId myWndId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(hWnd);
_appWindow = AppWindow.GetFromWindowId(myWndId);
_presenter = _appWindow.Presenter as OverlappedPresenter;
}
SetBorderAndTitleBar의 첫번째 파라미터는 테두리를 가질거냐 말거냐,
두번째 파라미터는 타이틀 바를 가질거냐 말거냐인데..
위와 같이 둘 다 false값을 주면 잘 작동하지만, (false, true)로 주면 작동하지 않는다. 타이틀 바가 뭔지는 아직 잘 모르겠다.
어찌됐건 테두리는 없어져서 나온다.
2. 창의 제목 , 아이콘 설정하기
위의 코드를 가져온 후, Title을 설정해주면 된다.
아이콘은 SetIcon() 함수를 사용하면 된다. 이때, 아이콘은 ico 확장자만 사용할 수 있다.
(png로 해봤는데 안된다)
public MainWindow() {
this.InitializeComponent();
GetAppWindowAndPresenter();
_appWindow.Title = "안녕하세요!"
_appWindow.SetIcon("Images/icon.ico");
}
2번의 결과, 제목과 아이콘이 바뀐 것을 볼 수 있다.
2023.02.05 21:49 추가 작성
TitleBar가 한국어로 하면 제목표시줄인데..
public MainWindow() {
this.InitializeComponent();
GetAppWindowAndPresenter();
titleBar = _appWindow.TitleBar;
titleBar.BackgroundColor = Colors.Red;
}
private AppWindowTitleBar titleBar;
titlebar속성이 있길래 건들여봤더니, 안 바뀐다.
찾아보니 윈도우 10에서는 타이틀바 속성을 건들 수 없다고 써있긴 하다.
다른 방법이 없을까하다가
Window.Current.SetTitleBar(customTitleBar);
요것도 있길래 해봤지만 요건 예외처리 안됐다면서 빠꾸.
사실 될 수도 있는건데 내 코딩 실력의 부족일 수도 있다는 생각이 들었다.
행여 이 글을 보고 계신 분들께.
이 글을 보고 바로 안된다고 단정짓지 마시고, 도전해보신 후에 저 좀 가르쳐주세요..
'C# > WinUI3' 카테고리의 다른 글
[WinUI3] 체스 게임 만들기(2) : 말 선택하기 (0) | 2023.02.10 |
---|---|
[WinUI3] 체스 게임 만들기(1) (0) | 2023.02.06 |
[WinUI3] NoResize, 생성 시 창의 크기 (0) | 2023.02.05 |
[WinUI3] FileOpenPicker 사용하여 이미지 불러오기 (0) | 2023.02.04 |
[WinUI3] Color Picker 사용기 (2) | 2023.01.28 |