WP7のホームスクリーンのタイルとかをつついたとき、うにょーんと傾くあれがSilverlight ToolkitのTiltEffectとして公開されています。お手軽な感じでWP7の標準UIにマッチしたUIを作れてとても便利です。
ちなみに使い方はこんな感じ。
<phone:PhoneApplicationPage x:Class="Sample.Sample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" toolkit:TiltEffect.IsTiltEnabled="True"> </phone:PhoneApplicationPage>
ルート要素にtoolkit:TiltEffect.IsTiltEnabledを追加するだけ。とてもらくちんです。
さてこのTiltEffectですが、すべてのコントロールで利用可能なのか。というとそうではありません。具体的に何に適用されるか、といいますと、次通りです。
- ButtonBase
- ListBoxItem
たったこの2個だけです。ButtonBaseはあらゆるボタン型コントロールのベースコントロールなので、ここから派生しているコントロールすべてに対して適用されます。つまり以下のコントロールなどが対象になります。
- Button
- HyperlinkButton
- CheckBox
- RadioButton
- etc..
ListBoxItemにおいても同様に、ListBoxItemだけでなくComboBoxItemにも適用されます。
というわけで、適用されるコントロールは上の2個だけなので、それ以外のコントロール、たとえばSilverlight Toolkitに含まれるListPickerなどには適用されません。システムの設定画面などではTiltEffectが利用されているのでそのうちSilverlight Toolkitのアップデートで対応されるかもしれません・・?
ちなみにですが、TiltEffectを適用するコントロールはSilverlight Toolkit内のTiltEffec.cs内で定義されています。
// Change Set 61620 での場合です。 // Line: 119 // The tiltable items list. TiltableItems = new List<Type>() { typeof(ButtonBase), typeof(ListBoxItem), };
ここに任意の型を追加してSilverlight Toolkitをリビルドしてあげれば、任意の型にたいしてTiltEffectを適用することもできます。ですが、たとえばListPickerなどはキャプションもコントロール内に含んでいるのでキャプションごとTiltして微妙な気分になったりするので、標準のままのほうがいいのではとも思います。