C#
-
WPF Font Family 한글 표시C#/WPF 2017. 5. 12. 11:30
WPF 에서 시스템에 있는 폰트를 ComboBox 를 통해 혹은 List 를 통해 볼 수 있습니다. 그러나 WPF에서 제공해주는 폰트들은 영어로 표시가 되어 한글 폰트들도 영어 이름으로 나옵니다 예를 들어 "맑은 고딕" -> "Malgun Gothic" 과 같이 말입니다. 그래서 한글로 표시해 주는 방법을 찾아보았습니다. 참고 먼저 System.Windows.Markup.XmlLanguage 에서 GetLanguage 라는 함수를 통해 현재 System 의 언어(System.Globalization.CultureInfo.CurrentUICulture.Name)의 Key를 불러옵니다.(우리의 경우 ko-kr) 그 뒤 Fonts 의 SystemFontFamilies 로 해당 컴퓨터에 있는 Font List로..
-
C# 높은 수준의 랜덤 숫자 (Good Random Number)C# 2017. 3. 23. 13:00
아마 임의의 숫자를 사용하실 때에 Random 클래스를 통해 Next를 사용하여 얻으실 것입니다. 하지만 이는 seed값이 계속 동일하다면 결국 나중에는 같은 패턴의 숫자들이 나오게 됩니다. 보통 seed값을 매우 큰 값을 주어서 일반적인 상황에서는 다시 나오게 되기 힘들지만,계속해서 많이 돌린다면 같은 패턴이 나오게 될 수 있지요. 아니면 그냥 Random보다 더 좋은게 없을까 하시는 분이 계실 수 있습니다. C#에서는 이를 지원해줍니다. System.Security.Cryptography 네임스페이스에 있습니다.이는 보안을 위한 네임스페이스인데, 여기서 높은 수준의 랜덤 넘버를 만들어 줍니다. 우선 만들어 본 Random 함수입니다. 1234567891011121314151617181920/// //..
-
mp3 파일 id3v2 태그 분석C#/WPF 2017. 3. 10. 16:07
음악플레이어를 만드는데, 파일명보다는 "artist - title명" 이런식으로 표현하고 싶었다. 그래서 mp3파일의 태그가 어떠한 구조로 되어있는지 찾아보았다. ID3 라는 태그인데, 최근에는 v2를 보통 쓴다. (version 2) 링크 그래서 붙여서 ID3v2로 쓴다. 이 태그를 통해 해당 mp3곡의 가수, 곡명, 앨범명, 저작권자, 트렉번호, 앨범아트 등을 알 수 있다. taglib를 쓰는 것을 강력히 추천한다. 저처럼 그냥 분석하고 쪼개보는 것을 좋아하는 사람만 해보시길... taglib 사용법 visual studio 2015 wpf 기준 상단메뉴 도구 -> NuGet 패키지 관리자 -> 솔루션용 NuGet 패키지 관리 -> 찾아보기 -> "taglib" -> 프로젝트 선택 -> 설치 TagL..
-
WPF MediaPlayer Volume 사용C#/WPF 2017. 3. 10. 15:42
MediaPlayer 를 사용하면서 volume 값을 저장하고, 프로그램이 켜질때 다시 적용시키는 방법을 하고있었다. 그런데 volume값이 1 이 되면 (0 ~ 1) 불러올때 적용이 안되더라. 그래서 찾아보고 찾아보니 Volume값이 1 을 가리키면 bool 값의 1 처럼 "소리가 난다." 를 뜻한다.그래서 실질적인 Max Volume 값은 0.99 이다. 따로 사용하는 AIMP 라는 음악플레이어 에서도 볼륨 99%는 존재하지 않는다. 97, 98과 100이 존재할 뿐... 0.99를 100으로 표시하고 사용하는 것이였다. 결국에 알아내긴 했지만, 혹시 나같은 사람이 있을까 글을 적는다. MediaPlayer 로 음악파일을 재생하면 매번 재생할때마다 Volume이 0.5로 설정된다. 그래서 따로 사용자..
-
WPF Rolling Animation (슬롯머신 같은 애니메이션)C#/WPF 2017. 2. 17. 10:30
텔레비전이나 여타 다른 곳들을 보면 숫자들이 돌아가면서 바뀌는 장면이 있습니다. WPF의 DoubleAnimation 을 통해 만들어 간단하게 만들어 보겠습니다. 메인 글자가 보이는 Label이 필요합니다. 1234567891011 Colored by Color Scriptercs 위와 같이 TranslateTransform 을 만들어주시고 Name을 설정해 주셔야 편하게 하실 수 있습니다. 기타 설정들은 여러분 편하신대로 하시면 됩니다. Animation 함수입니다. 12345678910111213141516171819202122232425262728void Animation(object sender, EventArgs e){ if (isDa1Up == true) { da1.From = 0; da1.T..
-
WPF 라디오 버튼 enum 바인딩(RadoButton Binding enum)C#/WPF 2017. 1. 24. 10:37
WPF 에서 radio 버튼을 사용할 때, 두가지가 아닌 여러가지를 사용하여 enum 형을 관리할 때 각 버튼마다 이벤트를 추가하고, 관리하기가 너무 길어집니다.' 바인딩을 사용하면 편해지는데요, 방법을 알아보겠습니다. 저는 Effect 라는 enum 을 사용하겠습니다. 123456public enum Effect{ None, Shadow, Outline}cs 아래는 Effect 형 변수와 속성입니다. 1234567891011121314public event PropertyChangedEventHandler PropertyChanged; Effect _effects; public Effect Effects{ get { return _effects; } set { _effects = value; if (P..
-
WPF 윤곽선 텍스트(Outlined Text)C#/WPF 2017. 1. 23. 11:00
wpf의 텍스트에 word art처럼 윤곽선 효과를 넣어야 하는데 아무리 찾아보고 찾아봐도 간단한 방법은 없었다. msdn에 예제가 있기는 하지만 상세한 코드들이 다 나와 있지는 않았었고, (링크)stackoverflow에는 아예 사용자 지정 컨트롤을 만들어 주어서 따로 추가한 뒤local 컨트롤을 통해 텍스트를 설정해 주어야 했다. (링크) 하지만 내가 원하는건 껐다 켰다 할 수 있는 윤곽선을 원했기에 최대한 다른 방법을 찾아 보았다. msdn에 예제가 있는 것을 발견했다. (링크) 하지만 이 예제에 있는 방법으로는 껐다 켰다 가 되기는 했지만 위의 사용자 지정 컨트롤과 다를 바 가 별로 없어 보였다.그리고 글이 무조건 left, top 정렬이 되어서 center 정렬이 되지 않았었다. 포기하려던 찰나..
-
WPF 메시지 박스 띄우기(경고창 띄우기)C#/WPF 2017. 1. 16. 16:04
프로그램을 만들다 보면 간단한 메시지를 띄워야 할 때가 있습니다. 윈도우에서는 메시지박스를 띄워주는 방법이 있는데요. 간단하게 띄울 수가 있습니다. 1. MessageBox 라는 클래스의 Show 함수를 사용하면 됩니다. 1MessageBox.Show("보여줄 메시지 입니다.");cs 가장 기본적인 형태는 위와 같습니다. 2. 그 다음에는 제목을 추가할 수 있으며, 간단한 버튼, 간단한 이미지를 넣을 수 있습니다. 1MessageBox.Show("보여줄 메시지 입니다.", "제목 표시줄");cs 3. 간단한 버튼들을 추가할 수 있습니다.OK : 확인OKCancel : 확인 취소YesNo : 예 아니오YesNoCancel : 예 아니오 취소 또한 이 버튼을 누른 결과들을 MessageBoxResult 를 ..