Windows8 App2013. 12. 4. 13:29
private async void GetFile()
       {
           Uri source = new Uri(imgUrl);
           StorageFile destinationFile;
           try
           {
               destinationFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
                   "downloadimage.jpg", CreationCollisionOption.GenerateUniqueName);
           }
           catch (FileNotFoundException ex)
           {
               return;
           }
           BackgroundDownloader downloader = new BackgroundDownloader();
           DownloadOperation download = downloader.CreateDownload(source, destinationFile);
           await download.StartAsync();
 
           //ResponseInformation response = download.GetResponseInformation();
           var stream = await download.ResultFile.OpenReadAsync();
 
           BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
           InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
           BitmapEncoder enc = await BitmapEncoder.CreateForTranscodingAsync(ras, decoder);
 
           BitmapBounds bounds = new BitmapBounds();
           bounds.Height = 274;
           bounds.Width = 382;
           bounds.Y = 0;
           bounds.X = 0;
 
           enc.BitmapTransform.Bounds = bounds;
           await enc.FlushAsync();
 
           BitmapImage bImg = new BitmapImage();
           bImg.SetSource(ras);
           xImage.Source = bImg;
 
           //2
           InMemoryRandomAccessStream ras2 = new InMemoryRandomAccessStream();
           BitmapEncoder enc2 = await BitmapEncoder.CreateForTranscodingAsync(ras2, decoder);
           BitmapBounds bounds2 = new BitmapBounds();
           bounds2.Height = 274;
           bounds2.Width = 382;
           bounds2.Y = 274;
           bounds2.X = 0;
 
           enc2.BitmapTransform.Bounds = bounds2;
           await enc2.FlushAsync();
 
           BitmapImage bImg2 = new BitmapImage();
           bImg2.SetSource(ras2);
           xImage2.Source = bImg2;
 
           var filed = await ApplicationData.Current.LocalFolder.GetFilesAsync();
 
           foreach (var item in filed)
           {
               //그냥 모두 삭제 삭제 안된 파일이 있을경우 파일이 커지는경우를 방지
               await item.DeleteAsync();
           }
       }

 

참고

다운로드

http://stackoverflow.com/questions/19272878/how-to-save-image-downloaded-from-urlserver-to-local-folder-in-windows-store-a

 

crop

http://stackoverflow.com/questions/12349611/how-to-resize-image-in-c-sharp-winrt-winmd

 

삭제:

http://stackoverflow.com/questions/14978526/how-delete-file-in-localstorage-on-winrt

Posted by 동동(이재동)
Windows8 App2013. 11. 22. 16:21
testText.Text = "Testing 123" + Environment.NewLine + "Testing ABC";
 
StringBuilder builder = new StringBuilder();
builder.Append(Environment.NewLine);
builder.Append("Test Text");
builder.Append(Environment.NewLine);
builder.Append("Test 2 Text");
testText.Text += builder.ToString();

http://stackoverflow.com/questions/15582398/programmatic-textblock-entry-with-linebreaks

Posted by 동동(이재동)
포트폴리오2013. 8. 8. 14:29

멜론 윈도우폰 8 이 끝난후에 했던 WINRT (windows 8) APP 프로젝트 이다.

 

윈도우폰 하고 있다가 윈도우8 개발자가 회사를 그만둠으로써 내가 맡았던 프로젝트 이다.

 

버그가 많아서 고치는데 죽는줄 ㅠㅠ

 

LTE 단말 대응이라든지 추가 UI및 기획 변경사항 버그 수정을 하느라 시간이 조금 걸렸던 프로젝트이다.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 동동(이재동)
Windows8 App2013. 7. 23. 13:16

com error나 thread error가 나는걸 보니 분명히 dispatcher 를 쓰면 될꺼 같은데 라는 생각이 들었다.

 

networkchanged이벤트를 받아서 인터넷이 끊겼을때 ui를 변경 시켜야하는건데

 

networkchanged이벤트를 app.xaml에서 주는걸 그대로 쓰지말고 해당 xaml.cs에 한번더 이벤트를 건후

 

Windows.Networking.Connectivity.NetworkInformation.NetworkStatusChanged += delegate { DownloadNetworkState(); };
 
        private async void DownloadNetworkState()
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {                
                MelonAppBar.SetDownloadToogleButtonContent();
            });
        }

 

 

이렇게 dispatcher를 이용했다…

 

근데 Windows.current.dispatcher는 쓰임이 다르니 다를때 사용할것(이것때문에 삽질 했다는 ㅠㅠ)

Posted by 동동(이재동)
Windows8 App2013. 7. 5. 11:23

 

 

void detectScreenType()
 {
     double dpi = DisplayProperties.LogicalDpi;
     var bounds = Window.Current.Bounds;
     double h;
     switch (ApplicationView.Value)
     {
         case ApplicationViewState.Filled:
             h = bounds.Height;
             break;
 
         case ApplicationViewState.FullScreenLandscape:
             h = bounds.Height;
             break;
 
         case ApplicationViewState.Snapped:
             h = bounds.Height;
             break;
 
         case ApplicationViewState.FullScreenPortrait:
             h = bounds.Width;
             break;
 
         default:
             return;
     }
     double inches = h / dpi ;
     string screenType = "Slate";
     if (inches < 10)
     {
         screenType = "Slate";
     } else if (inches < 14) {
         screenType = "WorkHorsePC";
     }
     else 
     {
         screenType = "FamilyHub";
     }
     ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
     localSettings.Values["screenType"] = screenType;
 }

 

머 거창해 보이지만 실제로는

 

var bounds = Window.Current.Bounds;

 

이렇게만 얻어오면 된다.

 

참조 : http://stackoverflow.com/questions/10828179/how-to-get-the-resolution-of-screen-for-a-winrt-app

'Windows8 App' 카테고리의 다른 글

TextBlock에서 라인 띄우는 법  (0) 2013.11.22
T Generic 리턴하기  (0) 2013.10.15
[winrt] dispatcher의 활용  (0) 2013.07.23
[windows8] 셋팅 페이지 보이게 하기  (0) 2013.07.11
[win8] 윈8 앱 종료 이벤트  (0) 2013.06.17
Posted by 동동(이재동)