Hatena::ブログ(Diary)

Yuya Yamaki’s blog このページをアンテナに追加 RSSフィード

2013年11月27日(水曜日)

RenderTargetBitmap.RenderAsyncメソッドの実行は画面に表示されたUIElementに限る

画面上のオブジェクトを画像に変換にする「あの機能が」が帰って来た! - マイクロソフト エバンジェリストのブログ


 上記のblogで書かれているように、Windows 8.1のWindowsストアアプリでは新たに追加されたRenderTargetBitmapクラスを使ってUIElementを画像に変換することができるようになりました。


 しかし、このblogに書かれている「画面上のオブジェクト」という部分が非常に重要です。


            var btn = new Button();
            var rtb = new RenderTargetBitmap();
            await rtb.RenderAsync(btn);


 たとえば上記のようなコードを実行すると、「Value does not fall within the expected range.」というArgumentExceptionが発生します。


f:id:Yamaki:20131126215046p:image


これはUIElementを単純にインスタンス化しただけで画面上に表示していないことが原因です。RenderAsyncメソッドを実行するにはUIElementがVisualTreeにきちんと追加されている必要があるようです。ちなみにWindows Phone(Silverlight)のWriteableBitmap ではインスタンス化しただけでも問題なくビットマップを取得できていたため、Windows Phoneアプリからの移植の場合につまずきやすいポイントだと思います。


            var btn = new Button();
            var rtb = new RenderTargetBitmap();
            LayoutRoot.Children.Add(btn);
            await rtb.RenderAsync(btn);


 このようにパネルに追加するコードを1行追加するだけで、正常にUIElementをビットマップ化することができます。画面上に表示されるのが都合が悪い場合は、追加するパネルのOpacityプロパティを0にすれば対応可能です。

2012年10月24日(水曜日)

Windowsストアアプリが公開されました

 個人的に作成したWindowsストアアプリが公開されました。なんとかWindows 8のリリースに間に合わせることができました。

ひらがな書順習得 を購入 - Microsoft Store ja-JP


 なお、このアプリは以前作ったWindows Phone 7アプリをWindows 8に移植したものです。


ひらがな書順習得 を購入 - Microsoft Store ja-JP


 時間的な問題で、効果音がないなどWindows Phone版でできていたことが実現されていない部分がありますが、これはおいおい実装しようと思います。


 ちなみにWindows 8でこのページを見ている方でWebブラウザがInternet Explorer、SafariFirefoxである方は、以下のリンクから直接ストアのページに行けるはずです。


サンプル


※はてなダイアリー側で「./」が自動的に補完されてしまうようなので、下記の文字列をコピーしてWebブラウザのアドレスバーに貼り付けてください。


ms-windows-store:PDP?PFN=764d66f8-cdc0-4080-aa2c-4937a1d4d9f3


2012年04月04日(水曜日)

XAML版Metroスタイルアプリにおける「Windows Phoneのテーマリソース」的なもの

 Windows Phoneではテーマリソースという呼び名で、統一的な外観を構築するのに役立つブラシやフォントサイズなどがリソースディクショナリとして用意されています。


Windows Phone のテーマ リソース


 XAML版のMetroスタイルアプリでも、Visual StudioやExpression Blendのプロパティウィンドウ部分でこれに相当するリソースを確認することができるのですが、一覧表示されているドキュメントはまだ存在しません。


f:id:Yamaki:20120404163856p:image


 しかしながら、以下のフォルダにある「themeresources.xaml」で一覧を確認することができす。


C:\Program Files (x86)\Windows Kits\8.0\Include\winrt\xaml\design


 Consumer Preview時点の暫定的な情報になりますが、テーマリソースのDefault(Darkテーマ?)におけるブラシ部分だけを下記に掲載しておきます。


AppBarFillBrush #E5000000
AppBarItemBackgroundBrush Transparent
AppBarItemDisabledForegroundBrush #66FFFFFF
AppBarItemForegroundBrush #FFFFFFFF
AppBarItemHoverBackgroundBrush #21FFFFFF
AppBarItemHoverForegroundBrush #FFFFFFFF
AppBarItemPressedForegroundBrush #FF000000
ApplicationHoverTextBrush #FFFFFFFF
ApplicationPageBackgroundBrush #FF1D1D1D
ApplicationPressedTextBrush #FF5AB7E3
ApplicationSecondaryTextBrush #99FFFFFF
ApplicationTextBrush #DEFFFFFF
BackButtonBackgroundBrush Transparent
BackButtonDisabledGlyphBrush #66FFFFFF
BackButtonGlyphBrush #FFFFFFFF
BackButtonHoverBackgroundBrush #21FFFFFF
BackButtonHoverGlyphBrush #FFFFFFFF
BackButtonPressedGlyphBrush #FF000000
ButtonBackgroundBrush Transparent
ComboBoxDisabledBorderBrush #66FFFFFF
ComboBoxFocusedTextBrush White
ComboBoxHighlightBackgroundBrush White
ComboBoxHighlightFillBrush #FF008287
ComboBoxHighlightHoverFillBrush #FF219297
ComboBoxItemHighlightFillBrush #FF008287
ComboBoxItemHighlightHoverFillBrush #FF219297
ComboBoxItemPointerOverFillBrush #21000000
ComboBoxItemPressedFillBrush #FF000000
ComboBoxPointerOverBorderBrush #DEFFFFFF
ComboBoxPointerOverFillBrush #DEFFFFFF
ComboBoxNormalBackgroundBrush #CCFFFFFF
ComboBoxNormalBorderBrush #CCFFFFFF
ComboBoxPopupBackgroundBrush #FFFFFFFF
ComboBoxPopupBorderBrush #FF212121
ComboBoxPopupTextBrush #FF000000
ComboBoxPressedBorderBrush #FFFFFFFF
ComboBoxPressedFillBrush #FFFFFFFF
ComboBoxPressedTextBrush #FF000000
ControlBorderBrush #FFFFFFFF
ControlDisabledBrush #66FFFFFF
ControlDisabledFillBrush Transparent
ControlDisabledTextBrush #66FFFFFF
ControlForegroundBrush #FFFFFFFF
ControlGlyphBrush #FF000000
ControlGlyphPressedBrush #FF000000
ControlHeaderBrush #CCFFFFFF
ControlHighlightBrush #FF008287
ControlPointerOverFillBrush #21FFFFFF
ControlPointerOverStrokeBrush White
ControlNormalFillBrush White
ControlNormalStrokeBrush #FFFFFFFF
ControlPressedFillBrush #FF212121
ControlPressedTextBrush #FF000000
ControlTransparentntFillBrush Transparent
DefaultTextBrush White
DisabledTransparentntOutlineBrush Transparent
FocusVisualBlackStrokeBrush Black
FocusVisualWhiteStrokeBrush White
HyperlinkDisabledBrush #66FFFFFF
HyperlinkPointerOverBrush #FF42D2DA
HyperlinkPressedTextBrush #FF52EEFF
HyperlinkRestColorBrush#FF00B7C0
InputControlDisabledFillBrush #66FFFFFF
InputControlDisabledGlyphBrush #66000000
InputControlGlyphBrush #FF000000
InputControlPointerOverFillBrush #DEFFFFFF
InputControlPointerOverStrokeBrush #DEFFFFFF
InputControlNormalFillBrush #CCFFFFFF
InputControlPressedFillBrush #FFFFFFFF
InputControlStrokeBrush #CCFFFFFF
InputControlTextBrush #FF000000
ListBoxItemHighlightFillBrush #FF008287
ListBoxItemHighlightHoverFillBrush #FF219297
ListBoxItemPointerOverFillBrush #21000000
ListBoxItemPressedFillBrush #FF000000
ListBoxItemPressedForegroundBrush #FFFFFFFF
ListBoxNormalBorderBrush Transparent
ListBoxNormalFillBrush #CCFFFFFF
ListBoxFocusFillBrush #FFFFFFFF
ListViewItemCheckGlyphBrush #FFFFFFFF
ListViewItemCheckHintGlyphBrush #80008287
ListViewItemDragBackgroundBrush #99008287
ListViewItemHighlightBrush #FF008287
ListViewItemKeyboardFocusBrush #FFFFFFFF
ListViewItemPointerOverBrush #4DFFFFFF
ListViewItemOverlayBackgroundBrush #A6000000
ListViewItemOverlaySecondaryTextBrush #99FFFFFF
ListViewItemOverlayTextBrush #FFFFFFFF
ListViewItemPlaceholderRectBrush #FF3D3D3D
ListViewItemSelectedPointerOverBorderBrush #FF219297
ListViewItemSelectedPointerOverBrush #FF219297
ListViewItemSemiTransparentntHighlightBrush #99008287
ListViewItemVeryTransparentntHighlightBrush #7F26A0DA
MediaPlayerControlPanelBrush #A3000000
MediaPlayerDownloadProgressIndicatorBrush #FF008287
MediaPlayerErrorPanelBrush #FF000000
MediaPlayerTextBrush #FFFFFFFF
MediaPlayerVolumePanelBrush #A3000000
MouseScrollBarShadowBrush #7D9A9A9A
ProgressBarBorderBrush Transparent
ProgressBarFillBrush #FF008287
ProgressBarTrackBrush #59FFFFFF
ScrollBarButtonPointerOverBorderBrush #6BB7B7B7
ScrollBarButtonPointerOverFillBrush #E5D7D7D7
ScrollBarButtonPressedBorderBrush #9A000000
ScrollBarButtonPressedFillBrush #9A000000
ScrollBarFaceBrush #EBC9C9C9
ScrollBarGlyphArrowBrush #99000000
ScrollBarGlyphArrowPointerOverBrush #99000000
ScrollBarGlyphArrowPressedBrush #FFFFFFFF
ScrollBarShadowBrush #7D9A9A9A
ScrollBarThumbBorderBrush #3B555555
ScrollBarThumbFillBrush #DEC8C8C8
ScrollBarThumbPointerOverBorderBrush #6BB7B7B7
ScrollBarThumbPointerOverFillBrush #E5D7D7D7
ScrollBarThumbPressedBorderBrush #ED555555
ScrollBarThumbPressedFillBrush #99000000
ScrollBarTrackBrush #59D5D5D5
ScrollBarTrackBorderBrush #59D5D5D5
SliderThumbDisabledBorderBrush #FF7E7E7E
SliderThumbDisabledFillBrush #FF7E7E7E
SliderThumbHoverBorderBrush #FFFFFFFF
SliderThumbHoverFillBrush #FFFFFFFF
SliderThumbNormalBorderBrush #FFFFFFFF
SliderThumbNormalFillBrush #FFFFFFFF
SliderThumbPressedBorderBrush #FFFFFFFF
SliderThumbPressedFillBrush #FFFFFFFF
SliderTickMarkDisabledFillBrush Black
SliderTickMarkNormalFillBrush Black
SliderTrackDecreaseDisabledFillBrush #21FFFFFF
SliderTrackDecreasePointerOverFillBrush #FF219297
SliderTrackDecreaseNormalFillBrush #FF008287
SliderTrackDecreasePressedFillBrush #FF25BBC4
SliderTrackDisabledFillBrush #1FFFFFFF
SliderTrackPointerOverFillBrush #61FFFFFF
SliderTrackNormalFillBrush #59FFFFFF
SliderTrackPressedFillBrush #6EFFFFFF
TextBoxBorderBrush #FFFFFFFF
TextBoxButtonBorderBrush Transparent
TextBoxButtonFillBrush Transparent
TextBoxButtonGlyphBrush #FF000000
TextBoxButtonHoverBorderBrush Transparent
TextBoxButtonHoverFillBrush #FFDEDEDE
TextBoxButtonHoverGlyphBrush #FF000000
TextBoxButtonPressedBorderBrush Transparent
TextBoxButtonPressedFillBrush #FF000000
TextBoxButtonPressedGlyphBrush #FFFFFFFF
TextBoxDisabledBorderBrush #66FFFFFF
TextBoxDisabledFillBrush Transparent
TextBoxDisabledTextBrush #FF666666
TextBoxFillBrush #FFFFFFFF
TextBoxTextBrush #FF000000
ThumbBorderBrush #80555555
ThumbFillBrush #DEC8C8C8
ThumbPressedBrush #FF6DBDD1
ToggleSwitchCurtainBrush #FF008287
ToggleSwitchDisabledCurtainBrush Transparent
ToggleSwitchDisabledForegroundBrush #66FFFFFF
ToggleSwitchDisabledHeaderForegroundBrush #66FFFFFF
ToggleSwitchForegroundBrush #FFFFFFFF
ToggleSwitchHeaderForegroundBrush #99FFFFFF
ToggleSwitchInnerBorderBrush Transparent
ToggleSwitchPointerOverCurtainBrush #FF219297
ToggleSwitchOuterBorderBrush #59FFFFFF
ToggleSwitchOuterBorderDisabledBrush #33FFFFFF
ToggleSwitchPressedCurtainBrush #FF25BBC4
ToggleSwitchThumbBrush #FFFFFFFF
ToggleSwitchThumbDisabledBrush #FF7E7E7E
ToggleSwitchTrackBrush #59FFFFFF
ToggleSwitchTrackDisabledBrush #1FFFFFFF
ToolTipBackgroundBrush #FFFFFFFF
ToolTipBorderBrush #FF808080
ToolTipForegroundBrush #FF666666
TransparentntOutlineBrush Transparent