c#
-
WPF FontDialogC#/WPF 2017. 7. 18. 11:10
WPF에서 FontDialog를 사용하려면 꼭 System.Windows.Forms에 있는 FontDialog를 사용했어야 했습니다.(이전 글에서 설명 링크) 그런데 윈도우 7에서 .otf형식의 확장자를 사용하다보니 중간에 문제가 발생했습니다. 윈도우 10에서는 문제가 없었는데 말이죠. 그래서 Font Dialog를 직접 만들게 되었습니다. 급하게 필요한 기능만을 모아 간단하게 만들었습니다. 코드는 git hub에 올려두었습니다. (링크) .net framework 3.5 버전 이상이 설치되어 있으면 가능하며, 윈도우 7 부터는 3.5버전이 기본 설치되어 모두 사용 가능합니다. 버전 1의 코드를 여기에 올려놓겠습니다. 12345678910111213141516171819202122232425262728 ..
-
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 정렬이 되지 않았었다. 포기하려던 찰나..