Framework
5 posts
WPF TCP 채팅 프로젝트 소스코드

코드 설명 MVVM 구조로 만들어서 View 는 MainWindow 하나로 구성되어 있고 주요 기능은 MainWindow에서 MainViewModel을 호출하는 구조 코어기능과 통신을 담당하는 기능은 Core 폴더와 Net.IO 폴더로 따로 작성하였고 복잡한 디자인은 Themes 폴더에 xaml 로 작성해서 스타일을 적용하는 방식으로 구현하였음 클라이언트에서 통신을 담당하는 Server.cs 파일과 따로 만든 콘솔앱 서버와 통신하는 서버-클라이언트 구조로 구현하였음 View (MainWindow.xaml) 코드 ViewModel 구성 요소 옵저버블컬렉션으로 리스트 관리 Users: 현재 연결된 사용자 목록을 관리하는 ObservableCollection. Chats: 현재 채팅방의 메시지 목록을 관리하는 ObservableCollection. Contacts: 사용자의 연락처 목록을 관리하는 ObservableCollection. Messages: 개별 메시지 모델을…

WPF 화면이동 구현 - Page 사용

시작은 MainWindow MainWindow.xaml 그리드에 Frame 태그의 Source에 MenuPage링크를 직접 넣어주면 MenuPage의 화면이 띄워짐 MenuPage.xaml (그리드부분) 화면을 Row를 이용해 2분할하고 Hello 버튼과 World 버튼을 넣고 각각의 클릭 이벤트를 만듬 넓이와 넓이를 직접 지정해주면 자식 요소는 부모 요소의 크기 만큼 당겨주는 특징 때문에 가운데 정렬됨 MenuPage.cs 각 버튼의 클릭이벤트에서 URI를 생성하고 Navigate 를 이용해 각 페이지로 이동하도록 구현함 page1.xaml 과 page2.xaml은 Grid 안에 TextBlock을 만들어서 Hello 와 World 를 찍었음 결과 각 버튼을 누르면 가운데에 Hello 와 World 가 출력됨 WPF는 뒤로가기를 구현하지 않아도 자동으로 생성됨 시작은 MainWindow MainWindow.xaml MenuPage.xaml (그리드부분) MenuPage.cs…

WPF 데이터바인딩 더 알아보기

데이터바인딩 데이터바인딩(Data Binding)은 사용자 인터페이스(UI) 요소와 데이터 소스 간의 연결을 설정하여, 데이터가 자동으로 동기화되도록 하는 기술이다. 이를 통해 데이터 소스의 변경이 UI에 즉시 반영되며, UI를 통해 변경된 데이터가 데이터 소스에도 즉시 반영된다. 주로 WPF에서 데이터바인딩을 활용하게 된다. 데이터바인딩의 주요 구성 요소 데이터 소스(Data Source): 바인딩할 실제 데이터이다. 이는 객체, 컬렉션, 데이터베이스 등일 수 있다. 바인딩 타겟(Binding Target): 데이터를 표시할 UI 요소이다. 예를 들어 텍스트 박스, 레이블 등이 있다. 바인딩 객체(Binding Object): 데이터 소스와 바인딩 타겟 간의 연결을 설정하는 객체이다. 데이터바인딩의 활용 일반적으로 소스는 데이터(ViewModel)이고 타겟은 컨트롤이다. 모든 바인딩에는 소스 객체, 소스 속성, 타겟 객체 및 타겟 속성이 있다. 소스 객체는 Binding Sour…

WPF XAML과 코드비하인드(CS) 구조 이해

1. XAML **XAML (Extensible Application Markup Language)**은 WPF에서 UI를 정의하는 데 사용되는 XML 기반 언어이다. XAML을 사용하면 UI를 선언적으로 정의할 수 있다. 이 예제는 간단한 윈도우와 버튼을 정의하는 XAML 코드이다. 2. 코드 비하인드 XAML과 연결된 C# 코드를 코드 비하인드라고 한다. 이는 XAML로 정의된 UI 요소에 대한 이벤트 핸들러 및 기타 논리를 포함한다. 3. 레이아웃 WPF XAML은 다양한 레이아웃 컨테이너를 제공하여 UI 요소를 배치할 수 있다. 주요 레이아웃 컨테이너는 다음과 같다 : Grid: 행과 열로 구성된 격자 레이아웃 StackPanel: 수직 또는 수평으로 요소를 쌓는 레이아웃 DockPanel: 요소를 도킹하여 배치하는 레이아웃 Canvas: 절대 위치를 사용하여 요소를 배치하는 레이아웃 그리드 기본 사용법 그리드는 Grid.RowDefinitions와 Grid.ColumnD…

WPF의 디렉토리 구조 및 MVVM 패턴

WPF 프로젝트의 디렉토리 구조 솔루션 파일 (.sln) 솔루션 파일(.sln)은 Visual Studio 솔루션의 구성 요소를 정의하는 파일로 디렉토리 최상위에 있다. 이 파일은 하나 이상의 프로젝트를 포함할 수 있으며, 개발자가 프로젝트를 열고 빌드하는 데 중요한 역할을 한다. 프로젝트 파일 (.csproj) 프로젝트 파일(.csproj)은 C# 프로젝트의 설정을 정의하는 파일이다. 이 파일에는 프로젝트의 빌드 구성, 참조하는 라이브러리, 컴파일할 소스 파일 목록 등이 포함된다. 프로젝트 파일은 프로젝트의 빌드와 배포를 관리하며, 다양한 설정을 통해 프로젝트의 동작을 정의할 수 있다. Properties: 프로젝트의 속성을 포함하며, 주로 파일이 위치한다. 이 파일은 어셈블리의 메타데이터를 정의하며, 빌드와 배포 시 중요한 역할을 한다. References: 프로젝트에서 참조하는 외부 라이브러리나 어셈블리들. 프로젝트가 의존하는 외부 코드나 프레임워크를 관리한다. App.xa…