ideaki's blog

WinRT C#/XAML の開発について

はてなAPI ブックマークコメントのパーマリンクを取得する

はてなブックマークエントリー情報取得APIのレスポンスから作成することができます。

http://b.hatena.ne.jp/{user}/{timestamp}/#bookmark-{eid}

使い道として、
はてなスターカウントAPIブコメのリンクを指定して人気コメントの抽出とか。

#region 宣伝

はてなびゅぅゎぁ | Windows Phone Apps+Games Store (United States)
#endoregion

C# 動的なキーのJSONをデシリアライズする

はてなびゅぅゎぁのコードを部分的に紹介する記事。
#region 宣伝
はてなびゅぅゎぁ公開中です。

はてなびゅぅゎぁ | Windows Phone Apps+Games Store (United States)
#endregion

WP向けに公開中のはてなびゅぅゎぁはてなブックマークAPIを使用してます。
↓あたり

続きを読む

C# LINQ 複数のDictionaryをまとめる

備忘録、、、

dics.SelectMany(d => d).ToDictionary(x => x.Key, x => x.Value);

WinRT コードビハインド書かずにWebViewにプログレスバーつける

WebViewがコンテンツをロード中にプログレスバーを出しておくとユーザに親切だったりします。
ただこれ作るのにコードビハインド書かなくちゃいけなくて、めんどうだなあと思ってました。
実はXAMLだけで簡単に書けるみたいです。

<Border>
 <VisualStateManager.VisualStateGroups>
  <VisualStateGroup x:Name="WebViewVisualStateGroup">
   <VisualState x:Name="contentloading">
    <Storyboard>
     <ObjectAnimationUsingKeyFrames Storyboard.TargetName="progressBar" Storyboard.TargetProperty="(ProgressBar.IsIndeterminate)">
      <DiscreteObjectKeyFrame KeyTime="0">
       <DiscreteObjectKeyFrame.Value>
        <x:Boolean>True</x:Boolean>
       </DiscreteObjectKeyFrame.Value>
      </DiscreteObjectKeyFrame>
     </ObjectAnimationUsingKeyFrames>
     <FadeInThemeAnimation TargetName="border" />
    </Storyboard>
   </VisualState>
   <VisualState x:Name="contentloaded">
    <Storyboard>
     <FadeOutThemeAnimation TargetName="border" />
    </Storyboard>
   </VisualState>
  </VisualStateGroup>
 </VisualStateManager.VisualStateGroups>
 <Grid>
  <Grid.RowDefinitions>
   <RowDefinition Height="20" />
   <RowDefinition Height="1*" />
  </Grid.RowDefinitions>
  <WebView x:Name="WebViewObj"
     Grid.RowSpan="2"
     Source="{Binding SelectFeedItem.Uri}">
   <Interactivity:Interaction.Behaviors>
    <Core:EventTriggerBehavior EventName="NavigationCompleted">
     <Core:GoToStateAction StateName="contentloaded" />
    </Core:EventTriggerBehavior>
    <Core:EventTriggerBehavior EventName="NavigationStarting">
     <Core:GoToStateAction StateName="contentloading" />
    </Core:EventTriggerBehavior>
    <Core:EventTriggerBehavior EventName="NavigationFailed">
     <Core:GoToStateAction StateName="contentloaded" />
    </Core:EventTriggerBehavior>
   </Interactivity:Interaction.Behaviors>
  </WebView>
  <Border x:Name="border" Background="#B2F0F8FF">
   <ProgressBar x:Name="progressBar" />
  </Border>
 </Grid>
</Border>

参考になるエントリ

Blend for VS2013 RCにXAMLでのBehavior復活!!(ただしWindows 8.1のみのもよう) - かずきのBlog@hatena

MVVM開発をさらに加速させる ノンコーディングUI開発 - SSSSLIDE

WinRT C#/XAML お手軽に実装できる引っ張って更新コントロールの紹介

これは XAML Advent Calendar 2014 16日目の記事です。

@ideaki19です。WindowsストアをメインにC#/XAMLでアプリ開発を2年続けています。
2ちゃんねる専用ブラウザ sankaWindowsストアアプリで公開しています。
この記事ではsankaの一部機能を紹介します。
タイトルにがっつりネタバレしてありますが、引っ張って更新です!

続きを読む

GitHub始めました

モチベーション維持を期待してソースコードを公開できるGitHubを始めました。

ideaki (ideaki19) · GitHub

バージョン管理システムなるものを使うのが初めてなので何一つわかりません。

ゆっくりストアアプリの開発が楽しくなるライブラリを作っていこうと思います。

WinRT C# XAML ScrollViewerをマウスドラッグでぐりぐりする

題名の通り、ScrollViewerをマウスドラッグでぐりぐりします。

ポインタ移動イベントごとに、クリックした時のポイントとドラッグされた時のポイントの縦横差分を計算し、ScrollViewer.ChangeView()の引数にしているのがポイントです。

ScrollViewer以外にも応用は効くと思います。