분류 전체보기 516

[IT지식] DRM이란

DRM 이란? 디지털 권리 관리(Digital rights management, DRM)는 출판자 또는 저작권자가 그들이 배포한 디지털 자료나 하드웨어의 사용을 제어하고 이를 의도한 용도로만 사용하도록 제한하는 데 사용되는 모든 기술들을 지칭하는 용어이다. CDM(Content Decryption Module)에 기반한다. 이는 종종 복사 방지, 기술 보호 장치와 혼동하기도 한다. 앞의 두 용어는 디지털 권한 관리 설계의 일부로, 이런 기술이 설치된 전자장치 상의 디지털 콘텐츠에 대해 사용을 제어하는 데 사용되는 기술을 지칭한다. 디지털 권리 관리는 논란의 여지가 있는 분야로 지지자들은 저작권 소유자가 저작물에 대한 불법복제를 막아 지속적인 수입원을 확보하는 데 필요하다고 말한다. 자유 소프트웨어 재단을..

IT지식 2023.01.18

[WPF] Win32 api 사용하여 윈도우 창 제어하기 max창 드레그 및 축소화

public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } [DllImport("user32.dll")] public static extern IntPtr SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam); private void pnlControlBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { WindowInteropHelper helper = new WindowInteropHelper(this); SendMessage(helper.Handle, 161, 2, 0); //DragM..

VisualStudio/WPF 2023.01.09

[WPF] 바인딩(onetime, oneway, twoway, onewaytosource)

C#에서 인터페이스에 나타나는 값을 동적으로 표현할때 데이터바인딩을 사용한다. XAML의 내용이 이렇게 선언하면 TEXTBOX안에 표시되는 내용이 ViewModel이라는 뷰모델 클래스의 name이라는 요소와 연결되게 된다. 여기서 설정하는 MODE는 onetime, oneway, twoway, onewaytosource 중에 하나로 설정하는데, -onetime 만약에 현재 뷰모델의 name이라는 요소가 string타입의 "사과"라고 저장되어 있다고 하자. 만약 MODE를 onetime으로 연결 한다면, 인터페이스의 텍스트블록 안에 "사과"라는 글자가 뜨게 된다. 하지만, 이때 단 한번만 바인딩이 되고 이후로는 연결이 끊어지게 되서 뷰모델 안의 string name을 바꿔도 텍스트 박스의 값이 영향을 받지..

VisualStudio/WPF 2023.01.09

[WPF] 사용자 정의컨트롤 디펜던시프로퍼티(DependencyProperty)

디펜던시프로퍼티 사용자 정의컨트롤을 만들어 사용 할 때 사용자 정의 컨트롤의 속성을 접근하여 get set을 하기 위한 프로퍼티 이다. 사용방법 정의컨트롤 생성 디펜던시 프로퍼티 생성 방법 PROPDP + Tab + Tab 하면 나오는 초기 디펜던시 프로퍼티 public int MyProperty { get { return (int)GetValue(MyPropertyProperty); } set { SetValue(MyPropertyProperty, value); } } // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... public static re..

VisualStudio/WPF 2023.01.05

[C#] Action.Invoke() vs Action() 차이

action.Invoke는 action?.Invoke와 같이 action 콜백이 null인지 검사하고 null이 아닐 때에만 Invoke 되도록 사용하고자 할 때 많이 사용한다. 기존 예외처리 if(_action !=null) _action.Invoke(3);// _action(3) 과 같은 코드 ? 키워드를 사용 한 예외처리 _action?.Invoke(3); //if(_action !=null)를 ?키워드를 사용하여 null임을 체크할 수 있다. action(); 는 action.Invoke()와 컴파일과정이 100프로 동일 하다. action이 null이면 NullReferenceException을 뱉기 때문에 위험하다 그래서 invoke를 사용하기 전에 null 검사를 해야 하며 기존 예외처리 처..

VisualStudio/C# 2023.01.05