본문 바로가기

개발

(57)
WPF Gird panel 사용법 wpf에선 Layout 객체에 Canvas, StackPanel, WrapPanel, Grid 등이 있습니다. 그중 Grid 컨트롤에 관해 알아보겠습니다. 1.Grid.RowDefinitions Grid의 Row에대한 개수, 높이, 넓이등 로우값에 대한 세팅하는 태그입니다. RowDefinitnions태그 하나당 하나의 Row가 증가하는 속성을 가졌습니다. 2.ColumnDefinitions Grid의 Column에 대한 개수, 높이, 넓이등 컬럼 값에 대한 세팅을 하는 태그입니다. 마찬가지로 ColumnDefinitions 하나당 하나의 Column이 증가하는 속성을 가졌습니다. 3.Grid.Column Grid 컨트롤안에 Definitions를 지정한 만큼의 컬럼이 생기는데 해당 위치의 인덱스를 지정..
WPF DataTemplate과 ControlTemplate ItemsPanelTemplate 1.DataTemplate: DataTemplate은 데이터 개체의 시각적 표현을 정의하는 데 사용되는 템플릿입니다.목록이나 그리드에 항목 모음을 표시하는 것과 같이 특정 형식으로 데이터를 표시하는 데 사용됩니다. DataTemplate은 일반적으로 ListBox 또는 ListView와 같은 ItemsControl과 함께 사용되어 컨트롤의 각 항목 모양을 정의합니다. 2.ControlTemplate: ControlTemplate은 컨트롤의 모양과 동작을 정의하는 데 사용됩니다. 레이아웃, 테두리, 배경 및 기타 시각적 요소와 같은 컨트롤의 구조 및 시각적 모양을 정의합니다. ControlTemplate은 Button 또는 CheckBox와 같이 Control에서 파생되는 컨트롤과 함께 사용됩니다. 3.I..
WPF static Resource 와 dynamic Resource의 차이점 리소스를 설정해줍니다. 리소스 설정 wpf 의 리소스는 객체에 대한 값을 지정하여 재사용, 사용하기 위해서 사용합니다. 1.Static Resource 컴파일 타임에 로드됩니다. 처음 참조해 설정한 값이 변경 될일이 없는 경우 사용합니다. StaticResource를 통해 정적으로 등록합니다. 2.Dynamic Resource 런타임에 로드됩니다. 변경이 일어날때 사용합니다. 참조된 리소스가 즉시 사용 되지 않을 경우 사용합니다. 리소스가 변경될 때마다 다시 참조하여 가져오기 때문에 정적 리소스보다 성능의 저하가 있을 수 있습니다. DynamicResource를 통해 동적으로 등록합니다. 아래 코드를 추가하여 동적리소스에 해당 설정 정보가 바인딩 되게 해줍니다. 동적리소스 변경 로직 RadialGradi..
MSSQL datetime 형식으로 조회 및 입력하는 방법 cast,convert mssql에서 datetime 형식으로 값을 넣을 때 Cast와 Convert를 활용하여 시간과 날짜를 같이 입력하는 방법 입니다. 1. Convert활용 --Convert 활용 insert into 테이블명 (컬럼명1) values (convert(datetime,'2023-03-18 10:34:09.000')); convert와 datetime을 활용하여 datetime형식으로 변경하여 입력하는 방법입니다. 2.Cast 활용 --Cast 활용 insert into 테이블명 (컬럼명1) values (cast('2023-03-18 10:34:09.000'as datetime)); Cast를 활용하여 datetime형식으로 형변환을 하여 입력하는 방법입니다. 3.조회 방법 위의 두쿼리를 사용하여 입력하였..
c# WPF Behavior Grid click event mvvm패턴으로 만드는 법 wpf에서 Mvvm패턴을 지키면서 Grid에 클릭하는 방법입니다. 기존의 Grid는 Click 이벤트를 실행 할 수 없으나 Behavior를 사용하면 Grid에서도 클릭이벤트 사용이 가능합니다. 1.NuGet에서 Behaviors를 다운 받습니다. 2.xaml파일에 해당 문구를 넣어줍니다. xmlns:i="http://schemas.microsoft.com/xaml/behaviors" 3.ViewModel 클래스에 Behavior 클래스를 상속합니다. Behavior 이처럼 지정할 컨트롤 클래스를 명시해줍니다. internal class GridBehavior : Behavior 4. OnAttached(),OnDetaching()를 구현합니다. OnAttached를 통해 연결된 컨트롤 객체와 이벤트를 ..
C# wpf Dispatcher DispatcherObjcet사용법 및 정의 WPF의 모든 UI관련 작업은 Main Thread가 수행합니다. 처음 시작할 때 있는 [STAThread]어트리뷰트가 위 내용에 해당 합니다. 여기서 STA 란 하나의 객체는 하나의 Thread에서만 엑세스할수 있도록하는 규칙과 제한입니다. 이때 WPF의 메인 Thread는 직접적으로 다른 Thread에 간섭을 받을수 없습니다. 즉 한 Thread에 생성된 컨트롤들은 그 Thread에서만 값을 변경 할 수 있습니다 해당 ui에 대한 쓰레드를 관리하는게 Dispatcher라는 큐 관리자이며 만약 해당 Dispatcher의 작업이 종료 되지 않았는데 ui를 변경하거나 조작하려 하면 에러가 발생하게 됩니다. 이를 방지하기 위해 사용하는것이 Dispatcher,DispatcherObject입니다. Dispat..
c# image to byte 이미지 바이트로 전환, 이미지 압축 하는 법 이미지를 바이트로 전환하여 압축하는 방법입니다. EncoderParameter클래스를 사용하여 압축의 퀄리티를 지정 할 수 있습니다. 0L과 가까울수록 이미지가 더 압축되어 깨짐현상이 있을 수 있습니다. 아래는 이미지를 선택하여 압축을 한 복사본을 만드는 예제 코드입니다. public FrmImagecs() { InitializeComponent(); OpenFileDialog dlg = new OpenFileDialog(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { dlg.Filter = "jpg files (*.jpg)|*.jpg|jpeg files (*.jpeg)|*.jpeg|bmp files (*.bmp)|*.bmp|gif ..
c# 보조 키 이벤트 , 컨트롤 키 추가 이벤트 넣는 법 C# 이벤트를 만들다 보면 ctrl+마우스클릭 , Alt+드래그 등 보조키를 넣어야하는 이벤트가 필요한 경우가 있습니다. 이를 넣는 방법은 매우 간단합니다. 바로 아래와 같은 ModifierKeys를 사용하면됩니다. System.Windows.Forms.Control.ModifierKeys 예제 코드를 보겠습니다. //xaml public partial class Window2 : Window { public Window2() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { // ModifierKeys를 통한 보조키 이벤트 활용 if (System.Windows.Forms.Control.Modi..
네트워크 - ip와서브넷 마스크 CIDR이란 IP주소 : HOST에 대한 식별자 ip의 종류는 아래와 같이 2가지로 나뉩니다. IPv4 : 32bit ( 2^32) -일반적인 용도로 사용 IPv6:128bit ( 2^128) -학술적인 용도로 사용 ip 주소는 8bit 씩 끊어서 구분을 하지만 10진수로 표기를 합니다. 따라서 192.168.xx.xx 이런식으로 아이피가 들어가 있게 됩니다. 아이피는 network id 와 host id로 구분짓는데 이를 알기위해 필요한게 Network ID의 길이를 나타 내는 서브넷 마스크 입니다. 서브넷 마스크가 아래 255.255.255.0이라고 가정한다면 ip 192(2진변환) => 1100 0000 sub 255(2진변환) => 1111 1111 여기서 ip 주소와 서브넷 마스크를 AND연산을 하게 된다면..
MSSQL 현재 시간 구하는 법 형식 변환 하는 법 getdate() mssql에서 현재 시간과 날짜를 구하는 방법 1. SLEECT GETDATE() GETDATE를 사용하면 현재 날짜와 시간 초 까지 출력 됩니다. 2. SELECT CONVERT(CHAR(10),GETDATE(),23) YYYY-MM-DD로 출력 할때는 MSSQL의 날짜 변환 표를 사용해서 위와 같이 출력하면 됩니다. 2-1. SELECT CONVERT(DATE,GETDATE()) 똑같이 YYYY-MM-DD로 출력하고 싶을때 DATE를 CONVERT안에 넣에주면 똑같은 YYYY-MM-DD형식으로 출력 됩니다. 3.GETUTCDATE() GETUTCDTAE 는 표준시간을 출력하는 메서드입니다. GETUTCDATE도 마찬가지로 CONVERT를 사용하여 원하는 형식으로 출력 할 수 있습니다. 3-1 SELE..