WPF
-
간단한 음악플레이어Program 2018. 1. 5. 14:05
2017.03.10 - [C#/WPF] - WPF MediaPlayer Volume 사용 Music Player GG 다운로드 v0.2.1 (2018.09.16) : Google Drive, Naver Cloud 깃허브 : GitHub 서론. 프로그래밍을 처음 알게 된 뒤부터 평소에 사용하는 프로그램들을 직접 개발해서 사용해보고 싶었었다. WPF를 주로 공부하게 된 계기도 이 때문이 주 이유이다. 마침 깃허브에 대해서도 공부가 필요했었고, 개발 경험이 부족했기에 제대로 시작해보려 한다. 음악 듣는 것을 좋아하기에 가장 먼저 음악플레이어를 개발하게 되었다. 기능, 디자인 등은 음악플레이어들이 비슷하지만, 자주 사용하는 AIMP3(링크) 를 주로 참고(벤치마킹)했다. (초기 버전 : v0.1.0) 설명. 개..
-
WPF 실행파일 위치 알아내는 법C#/WPF 2017. 12. 29. 10:37
사용자가 프로그램을 사용할 때 현재 실행파일(.exe 파일)이 있는 위치는 사용자마다, 혹은 매번 다를 수 있습니다. 그렇기에 상대경로가 필요한데, 현재 실행파일의 위치를 기준으로 한 상대적 경로입니다. 하지만 결국 파일에 접근하기 위해서는 절대 경로가 필요한데, 현재 실행파일의 위치를 알려주는 속성이 있습니다. System.AppDomain.CurrentDomain.BaseDirectory ※ "using System" 선언 시 AppDomain.CurrentDomain.BaseDirectory 로 가능. string 형으로 현재 실행파일의 절대경로를 반환해주는데, 마지막\까지 포함된 상태로 반환됩니다. 아래는 간단한 예제입니다. 123456789101112131415private void ReadPe..
-
WPF 폰트(글꼴) 포함 배포C#/WPF 2017. 12. 20. 12:41
WPF로 프로그램을 만들어서 배포할 때에 프로그램에서 사용하는 글꼴이 사용자 컴퓨터에 없다면, 기본 글꼴로 바뀌게 된다. 그래서 이를 해결하기 위해 글꼴파일을 포함하여 배포하려한다. 이미지파일을 포함하여 배포하듯, 글꼴파일도 프로젝트에 포함시키면 되는 것이였다. (※단, exe파일에 같이 포함시키려면, 이미지파일과 같이 빌드 작업 을 Resource로 해주어야 한다. 이와 같이 프로젝트에 포함시켜 준 뒤 Label이나 TextBox 등에서 FontFamily 속성을 설정해주면 된다. 1 하지만 일반 이미지 파일을 넣듯 "Fonts\Daum_Regular.tff" 로 할 시에는 적용되지 않는다. 찾아본 결과 글꼴은 원래 글꼴 이름 앞에 #을 붙인 형태로 넣어야 한다고 한다. (ex. #나눔고딕) p.s. ..
-
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 ..
-
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로..
-
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..