C#에서 제일 많이 쓰이(는 걸로 알고있)는 Twitterizer 2의 문서를 보면 update_with_media로 status update를 하는 함수가 없는데 코드를 뜯어보니 다 만들어 놓고 문서 업데이트를 안 한 듯-_-;


TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.UpdateWithMedia(tokens, text, image);


로 사용 가능하다.


변수 타입은

OAuthTokens tokens, String text, byte[] image

이다. 


참고: 일반적으로 사용하는 statues/update는 text의 값이 비어있으면 안 되는데 update_with_media는 image의 url 때문에 text의 값이 비어있어도 된다. 근데 Twitterizer가 따로 처리를 안 했는지 text 값이 빈 값이면 예외가 발생하는데, 이때는 text의 값이 빈 값인지 확인하는 부분을 주석 처리하고 다시 컴파일해 주면 된다. 


주석 처리할 부분은: 

if (string.IsNullOrEmpty(text))

{

throw new ArgumentNullException("text");

}


댓글을 달아 주세요

C# WPF 코드에서 바로 UI 적용하기

카테고리 없음 2012. 5. 29. 02:22 Posted by Relipmoc

참고: http://stackoverflow.com/questions/2342468/wpf-how-to-apply-a-change-to-an-opacity-background-immediately-wpf-analog-to

http://blogs.microsoft.co.il/blogs/tamir/archive/2007/08/21/How-to-DoEvents-in-WPF_3F00_.aspx


원래는 함수가 끝나고 UI 적용이 되(는 것 같)지만, 이를 바로 해결해주는 함수를 stackoverflow에서 찾았다. 명불허전 stackoverflow.. 


private void UIControl()

{

~~~~

DoEvents();

}

private void DoEvents()

{

// Allow UI to Update...

DispatcherFrame f = new DispatcherFrame();

Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,

new Action<object>((arg) =>

 {

DispatcherFrame fr = arg as DispatcherFrame;

fr.Continue = false;

 }), f);

Dispatcher.PushFrame(f);

}   


예를 들면 Opacity를 바꾼 다음에 DoEvents를 호출하면 바로 적용이 된다. 

스크린샷 찍어야 되는데 Opacity가 안 바뀌어서 한참 삽질.. 



댓글을 달아 주세요

C# WPF Window 간 데이터 넘기기

카테고리 없음 2012. 5. 29. 01:23 Posted by Relipmoc

구글링 해보니 Navigator니 뭐니 복잡하게 데이터를 넘기는 방법이 많던데, 

넘기는 데이터가 항상 똑같은 형식이면 그냥 이렇게 해주면 된다.


ParentWindow.xaml.cs


ChildWindow window1 = new ChildWindow("레립목은 일반인인 것 같아요.");

window1.Show();


ChildWindow.xaml.cs


namespace CuteLovelyNamu

{

/// <summary>

///  ChildWindow .xaml에 대한 상호 작용 논리

/// </summary>

public partial class ChildWindow : Window

{

public ChildWindow(string a)

{

InitializeComponent();

}

}


저 굵은 부분이 넘어오는 데이터다.


사실 다시 생각해보니 쉬운데.. 

댓글을 달아 주세요

듀얼 모니터나 트리플 모니터 같은 멀티 모니터 환경에서 AMD® 아이피니티™ 같은 모든 화면을 덮는 윈도우를 만들려고 찾아봤더니 처음에는 Maximize를 해야 하는 줄 알았는데, 알고 보니 아니였다. stack overflow 글을 자세히 읽어보니까 최대화를 할 경우 한 모니터에서만 최대화가 되고 stretch 형식으로 resize 해야 한다... 라고 써있었는데 소스 복붙하기 바빠서 미처 저 문장을 보지 못하고 3일동안 헤맸다...


아무튼 결론은.. 사실 되게 쉽다


this.WindowStartupLocation = WindowStartupLocation.Manual;

this.Left = 0;

this.Top = 0;

this.Width = SystemParameters.VirtualScreenWidth;

this.Height = SystemParameters.VirtualScreenHeight;

this.WindowStyle = WindowStyle.None;

this.Topmost = true; 

this.Show();


이러면 된다

댓글을 달아 주세요

  1. SkillStorm 2012.05.30 21:47  댓글주소  수정/삭제  댓글쓰기

    내가 한것은 무엇이었는가아아아아아!

처음에는 API의 GetSystemMetrics 함수를 이용해 해상도를 구하였으나 더 찾아보니 더 쉬운 방법이 있었다(...)


double X = SystemParameters.VirtualScreenWidth;

double Y = SystemParameters.VirtualScreenHeight;


(...

댓글을 달아 주세요

C# WPF 핫키 설정

카테고리 없음 2012. 5. 14. 02:40 Posted by Relipmoc

아무리 검색해도 WPF 핫키 추가는 나오지 않아 나중에 혹시 찾을 일이 있으리라 믿고 올려둠. 


http://www.assembla.com/code/outcoldman_p/subversion/nodes/BlogProjects/WpfApplicationHotKey


이 repo의 WinApi 폴더를 그대로 갖다가 붙이고 MainWindow.xaml.cs 를 참고하면서 적용해도 되고,

프로젝트 참조를 해도 된다. 

TAG c#, HotKey, WPF, 핫키

댓글을 달아 주세요