본문 바로가기

IT/c#

[wpf] 클립보드에 string data를 저장하자 WPF로 Clipboard 를 사용하여 복사/붙여넣기를 하는 것은 생각보다 매우 간단하다. System.Windows.Clipboard 클래스 를 사용한다. 1) 복사하기 :Clipboard.SetText (string text) , Clipboard.SetImage (BitmapSource image) 함수 사용( 이외에도 SetAudio, SetData, SetDataObject 함수도 존재함) BitmapImage img = new BitmapImage();Clipboard.SetImage(img); 2) 붙여넣기 :Clipboard.GetText(), Clipboard.GetImage(), Clipboard.GetData(), Clipboard.GetDataObject() 등의 함수 사용 Bitm.. 더보기
[c#] c#에서 내 컴퓨터 IP주소를 받아오는 함수 만들기 private static string getIP(){ Regex regex = new Regex(@"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"); foreach (System.Net.IPAddress ip in System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList) { if (regex.IsMatch(ip.ToString())) { return ip.ToString(); } } return null;} 더보기
[c#] c# 에서 Brushes.[] 클래스에서 제공하는 color table 정리 .AliceBlue240,248,255.LightSalmon255,160,122.AntiqueWhite250,235,215.LightSeaGreen32,178,170.Aqua0,255,255.LightSkyBlue135,206,250.Aquamarine127,255,212.LightSlateGray119,136,153.Azure240,255,255.LightSteelBlue176,196,222.Beige245,245,220.LightYellow255,255,224.Bisque255,228,196.Lime0,255,0.Black0,0,0.LimeGreen50,205,50.BlanchedAlmond255,255,205.Linen250,240,230.Blue0,0,255.Magenta255,0,255.Blue.. 더보기
[c#] string 데이터를 utf-8 로 인코딩 하여 담아보자 (string to utf-8, encoding) As you know the string is coming in as Encoding.Default you could simply use: byte[] bytes = Encoding.Default.GetBytes(myString); myString = Encoding.UTF8.GetString(bytes); 더보기
[c#] c# 형변환에 대해서 알아보자 프로그래밍을 하다보면 형변환을 해야 하는 경우가 많은데, 각각의 자료형 형변환에 대해서 정리했습니다. 일단 가장 기본적으로 수치 자료형들을 str형으로 바꿀때는 ""+자료형 을 해주면 str형으로 바뀝니다. 또는 각각의 ToString() 메소드를 통해서 형을 변환 시킬 수 도 있습니다. 그리고 나머지 수치 자료들은 모두 Parse() 메소드를 가지고 있습니다. 예를 들면 String str = "1234"; 라는 변수는 int a = int.Parse(str) 을 통해서 int 형으로 변환이 됩니다. double 같은 경우는 double.Parse() 가 있습니다. float, long 형 모두 같습니다. 그 외에 double를 int로 바꿀때는 앞에 (int)를 붙여주면 됩니다 예를들면 double .. 더보기
[WPF] ListBox 안에 Button 넣기 In this tutorial I will demonstrate how to create a listbox in WPF which is databound to a collection, we then would like to add a button to each item in the listbox. Clicking this button will button will delete that item from the collection. Making an ObservableCollection We create a small class which represents a User with a Name and Age: public class User {public string Name { get; set; } pub.. 더보기
[c#] Collection 에 대해서 알아보자 C# Collection 정리 System.Collections 네임스페이스System.CollectionsSystem.Collections.ConcurrentSystem.Collections.GenericSystem.Collections.ObjectModelSystem.Collections.Specialized System.CollectionsArrayList 클래스BitArray 클래스CaseInsensitiveComparer 클래스CaseInsensitiveHashCodeProvider 클래스CollectionBase 클래스Comparer 클래스DictionaryBase 클래스DictionaryEntry 구조체Hashtable 클래스ICollection 인터페이스IComparer 인터페이스IDict.. 더보기
[WPF] WPF 데이터 바인딩에 대해서 알아보자 (기초) WPF(Windows® Presentation Foundation)를 사용하면 강력한 기능의 사용자 인터페이스를 쉽게 디자인할 수 있다는 사실은 독자 여러분도 이제 잘 알고 있으리라 생각합니다. 하지만 WPF가 강력한 데이터 바인딩 기능까지 제공한다는 사실은 잘 알려지지 않았습니다. WPF를 사용하면 Microsoft® .NET Framework 코드나 XAML, 또는 이 둘의 조합으로 데이터를 조작할 수 있습니다. 컨트롤, 공용 속성, XML 또는 개체에 바인딩할 수 있으므로 전례없이 빠르고 유연하며 손쉬운 데이터 바인딩이 가능합니다. 자, 그럼 컨트롤을 선택한 데이터 원본에 바인딩하는 과정을 어떻게 시작해야 할지 알아보겠습니다. 데이터 바인딩 세부 사항 WPF 데이터 바인딩을 사용하려면 항상 대상과 .. 더보기
[c#] c#으로 싱글톤 패턴을 구현하자 유니티에서 크고작은 게임을 제작하게 되면, 결국 데이터를 주고 받는데서 많은 고민을 하게 됩니다. 그러면, 유용하게 쓰이는 방법이 Static 으로 변수를 선언하여, 데이터의 호출과 출력을 자유롭게 하는 법인데요, 하지만, 무분별한 Static 변수 사용은, 메모리 관리 측면에서 많은 에로사항을 유발하게 된다고 알려져, 어느정도 규모가 커지면, 적절하게 사용하는 것이 중요하게 됩니다. 그런점에서 최초부터 데이터의 생성을 싱글톤 패턴을 이용하여 관리하게 되면, 매우 제작이 용이하게 됩니다. 저도, C# 전문가가 아니기 때문에 정확하게 싱글톤 처리가 어떤점에서 일반 Static 보다 이점이 있다고 말하기는 어렵지만, 실제로 실무에서 게임을 제작할땐 먼저 싱글톤으로 데이터를 생성하고 사용하게 되는 것 같습니다.. 더보기
[c#] 파일 입출력 할 때 없는 폴더 생성 후 파일을 저장해보자 이번에 알아볼 것은 파일 생성에 필요한 실행 프로그램의 경로와 폴더 생성에 관한 내용입니다. 파일 읽기, 쓰기를 할때 절대 경로가 아닌 상대 경로가 필요할때가 있습니다. 뭐 상관없이 절대경로로 C:\ 에 넣으면 좋겠지만 그렇지 않다면 현재 실행중인 실행파일을 보관하고있는 폴더에 있는 하위폴더 save 폴더에 넣고 싶다면 지금부터 설명할 방식을 사용합면 됩니다. 간단하게 Ex) C:\myProject\myProgram.exe 란 경로 가 있다고 합시다. myProgram.exe의 위치에 따라 앞의 내용이 달라질 겁니다.그때 사용할건 바로!! string strPath = AppDomain.CurrentDomain.BaseDirectory; 입니다.딱 이 한줄로 모든게 해결됩니다. 그런데 문제는 전 그 하위.. 더보기