#menu(MenuPG)
***WindowsPhone7 Programメモ [#k174995d]
-WindowsPhone7のプログラムに関するメモ&br;
&br;&br;
-Windows PhoneのMetro UIをタッチでジェスチャ操作
--http://www.atmarkit.co.jp/fsmart/articles/sil_wp7_04/01.html
-Windows Phone 7 のはてなフォトライフビューワを作る (後編) 
--http://expressiontech.jp/article/blend/hatena/2/page3.html
&br;&br;
-開発環境作成時の注意点
--VS2010SP1 > Blend4 SP1 > WP71SDKインストールの順で行うといいらしい
--Expression Studio4インストール済みの場合、WP71SDKをWeb InstallerではなくISOファイルを落としてきて、インストール作業するほうが自分の環境ではよかった&br;
その際Blend4 for WindowsPhoneがインストール失敗したら、SDK CD内のBlend4 WindowsPhone installerを手動で実行インストールする
&br;
-Windows Phone SDK 7.1.1をWindows 8 Release Previewへインストールする際の注意点
--大西さんのBlog
--http://blogs.msdn.com/b/aonishi/archive/2012/06/04/10314544.aspx
&br;
-縦横画面への対応
--PhoneApplicationPage を選択します。SupportOrientation プロパティ(その他の箇所)を Portrait から PortraitOrLanscape に変更&br;
ここが基本で、レイアウト関係も対応する必要がある)&br;
コントロールの配置は固定位置ではなく Alignment を使って設定
&br;
-回転の取得
--PhoneApplicationPage.OrientationChangedをイベントとして有効にする
&br;
-ToolKit関連
--DatePicker等で使用されるToolKitの「ApplicationBar」アイコンは「Toolkit.Content」というフォルダを作成&br;
「ApplicationBar.Cancel.png」「ApplicationBar.Check.png」アイコンを登録&br;
アイコンはプロパティをコンテンツとして設定しておくこと。
&br;
-SDK 7.1.1がリリースされて512MBと256MBの端末対応になった
 <!-- 512MB環境に制限したい場合↓の「Requirements」セクションをWMAppManifest.xmlで有効にする -->
    <!--
    <Requirements>
      <Requirement Name="ID_REQ_MEMORY_90"/>
    </Requirements>
    -->
&br;
&br;

-ListBoxを横スクロールにする場合ItemsPanelTemplateをstyle追加して、ListBoxのItemsPanelにStaticResourceとしてバインドするとItemパネルが横向き対応になる
 <ItemsPanelTemplate x:Key="HorizontalItemsPanelTemplate">
   <StackPanel Orientation="Horizontal"/>
 </ItemsPanelTemplate>
--ScrollViewer.HorizontalScrollBarVisibility="Auto"も必要
&br;
&br;
-コンテンツマネージャーのルートは明示的に指定すること
--contentManager.RootDirectory = "〜〜";

-XAMLとXNAの共存
 protected override void OnNavigatedTo(NavigationEventArgs e)
 //  XNA による描画を有効化するように、グラフィックス デバイスの共有モード設定します。
 GraphicsDevice device = SharedGraphicsDeviceManager.Current.GraphicsDevice;
 device.SetSharingMode(true);
 // 新規の SpriteBatch を作成します。これはテクスチャーの描画に使用できます。
 spriteBatch = new SpriteBatch(device);
 /// Silverlight
 elementRenderer = new UIElementRenderer(this, device.Viewport.Width, device.Viewport.Height);
 
 private void OnDraw(object sender, GameTimerEventArgs e)
 // Draw Silverlight UI element to Texture
 elementRenderer.Render();
 SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.CornflowerBlue);
 // TODO: ここに描画コードを追加します。
 // Draw Silverlight UI element
 spriteBatch.Begin();
 spriteBatch.Draw(elementRenderer.Texture, Vector2.Zero, Color.White);
 spriteBatch.End();

-XML-DBに関するメモ
--参考URL:http://digitalkids2000.blogspot.com/2011/01/windowsphone7-windowsphone7xmldb-linq.html
&br;
&br;
-Windows Phone アプリケーションのデータベースのバージョンを管理する方法
--http://d.hatena.ne.jp/samril/20110905/1315305619
&br;
&br;
-Windows Phone 7開発向け日本語フォーラム
--http://social.msdn.microsoft.com/Forums/ja-JP/wpdevja/threads
&br;
&br;
-Scrollviewerに関する解説
--http://blogs.msdn.com/b/ttanaka/archive/2011/06/29/windows-amp-vol-03-windows-phone-1.aspx
--
&br;
&br;
-indows Phone 7:Silverlight Media Framework簡単サンプル
--http://blog.livedoor.jp/coelacanth_blog/archives/55417138.html
&br;
&br;
-Bluetoothプログラミング Wp7で使えるかわからないがsocketAPIでいけそう?
--http://memolet.blog22.fc2.com/blog-entry-35.html
&br;
&br;
-MSC 2011 資料ダウンロード
--http://msdn.microsoft.com/ja-jp/events/hh456411#D1
&br;
&br;
-参考になるサイト
--慣性
---http://msdn.microsoft.com/ja-jp/library/ee248546.aspx
--http://windowsteamblog.com/windows_live/b/windowslive/archive/2011/07/20/developers-learn-how-to-bring-data-from-hotmail-messenger-and-skydrive-to-your-mobile-apps.aspx
--https://github.com/liveservices/LiveSDK
--https://github.com/liveservices/LiveSDK/tree/master/Samples/WindowsPhone/OauthSample
--http://code.msdn.microsoft.com/SkyDrive-Photo-API-sample-f06778ae
--http://gihyo.jp/dev/serial/01/wl-sdk?start=20
--https://manage.dev.live.com/AddApplication.aspx

&br;&br;
--http://d.hatena.ne.jp/Gemma/20080517/1211010942
--http://d.hatena.ne.jp/keitanxkeitan/20110505/1304615360
--http://hakuhin.jp/as/collide.html
---http://zatsugaku.info/index.php?Program/Wp7dev/pgmemo
--アプリケーションバー
---http://www.atmarkit.co.jp/fdotnet/chushin/progwp7_01/progwp7_01_03.html
--線分と円の交差あたり判定の参考
---http://torasukenote.blog120.fc2.com/blog-entry-55.html
---http://www.dango-itimi.com/blog/archives/2006/000858.html
---http://marupeke296.com/COL_Basic_No1_InnerAndOuterProduct.html
--端末識別子関係
---http://www.nickharris.net/2010/09/windows-phone-7-how-to-find-the-device-unique-id-windows-live-anonymous-id-and-manufacturer/

&br;
-ゲーム制作参考
--クオゥータービュー
---http://2dgames.jp/wiki.cgi?page=%A5%AF%A5%A9%A1%BC%A5%BF%A1%BC%A5%D3%A5%E5%A1%BC%A4%CE%BA%EE%A4%EA%CA%FD
--第 2 章 Visual C# によるグラフィックス処理と CAD 入門〜 アルゴリズム入門 〜
---http://msdn.microsoft.com/ja-jp/academic/cc998602

&br;
-MS Live参考
--http://msdn.microsoft.com/en-us/library/hh243648.aspx
--http://channel9.msdn.com/Events/BUILD/BUILD2011/PLAT-134C
--http://nikovrdoljak.wordpress.com/2011/09/15/backup-your-windows-phone-isolated-storage-data-to-skydrive-using-live-connect-api/
--https://xnyhps.nl/~thijs/LiveConnectPrelim.pdf
--http://www.slideshare.net/tanakata/111015-wp7
--http://msdn.microsoft.com/ja-jp/library/hh243648.aspx#folder

&br;
-http://tw.myblog.yahoo.com/akira32-akira32/article?mid=1037&prev=1054&next=1035
-http://blogs.msdn.com/b/ito/archive/2007/05/02/content-pipeline-part3.aspx

-音
--http://nanatomo.com/
--http://homepage2.nifty.com/sampodo/script/psgnotes.html

-難読化 VSに入ってるのだとWindowsPhoneでは使えないかも
--http://www.atmarkit.co.jp/fdotnet/dotnettips/528autoobfuscate/autoobfuscate.html
&br;

<Target Name="AfterCompile" Condition="'$(Obfuscate)'=='true'">

    <!-- dotfuscator.exeパスのプロパティ設定 -->
    <CreateProperty Value="C:\Program Files (x86)\Microsoft Visual Studio 10.0\PreEmptive Solutions\Dotfuscator Community Edition\dotfuscator.exe">
      <Output TaskParameter="Value" PropertyName="_DotfuscatorExePath" />
    </CreateProperty>

    <!-- 難読化するファイルのプロパティ設定 -->
    <CreateProperty Value="$(ProjectDir)$(IntermediateOutputPath)$(TargetFileName)">
      <Output TaskParameter="Value" PropertyName="_ObfuscatedFilePath" />
    </CreateProperty>

    <!-- 難読化先フォルダのプロパティ設定 -->
    <CreateProperty Value="$(ProjectDir)Dotfuscated">
      <Output TaskParameter="Value" PropertyName="_DotfuscatedFolderPath" />
    </CreateProperty>

    <!-- 難読化の実行 -->
    <Exec Command="&quot;$(_DotfuscatorExePath)&quot; /in:&quot;$(_ObfuscatedFilePath)&quot; /out:&quot;$(_DotfuscatedFolderPath)&quot; /q" />

    <!-- 難読化済みファイルをコピー -->
    <Copy SourceFiles="$(_DotfuscatedFolderPath)\$(TargetFileName)"
          DestinationFiles="$(_ObfuscatedFilePath)" />

  </Target>

&br;

 <Optimize>true</Optimize>

&br;
-Wp7.1 Database参考
--http://blog.livedoor.jp/coelacanth_blog/archives/55464528.html
--http://lab.technet.microsoft.com/ja-jp/magazine/bb386951
&br;
-XAML および C# を使ってカスタム コントロールを構築する
--http://blogs.msdn.com/b/windowsappdev_ja/archive/2012/10/19/xaml-c.aspx

&br;
-MSの高橋忍氏作成のDependency Property for Windows Phone コードスニペット
--http://blogs.msdn.com/b/shintak/archive/2012/03/08/10279616.aspx
-上記をちょっと改良、「添付プロパティ」として展開する
--使用する際、保存形式は必ず「UTF-8」で行うこと
 <?xml version="1.0" encoding="utf-8"?>
 <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2008/CodeSnippet">
   <CodeSnippet Format="1.0.0">
     <Header>
       <Title>Dependency Property for Windows Phone</Title>
       <Shortcut>propwp2</Shortcut>
       <Description>Dependency Property for Windows Phone コード スニペット</Description>
       <Author>shinobu takahashi / CryEarth tomoyuki sasaki</Author>
       <SnippetTypes>
         <SnippetType>Expansion</SnippetType>
       </SnippetTypes>
     </Header>
     <Snippet>
       <Declarations>
         <Literal>
           <ID>type</ID>
           <ToolTip>プロパティの型</ToolTip>
           <Default>int</Default>
         </Literal>
         <Literal>
           <ID>name</ID>
           <ToolTip>プロパティ名</ToolTip>
           <Default>MyProperty</Default>
         </Literal>
         <Literal>
           <ID>ownerclass</ID>
           <ToolTip>このプロパティを定義しているここのクラスです</ToolTip>
           <Default>ownerclass</Default>
         </Literal>
       </Declarations>
       <Code Language="CSharp">
         <![CDATA[[System.ComponentModel.Description("説明文"), System.ComponentModel.CategoryAttribute("タブ")]
 	 public $type$ $name$
         {
             get { return ($type$)GetValue($name$Property); }
             set { SetValue($name$Property, value); }
         }
 
         public static readonly DependencyProperty $name$Property =
             DependencyProperty.Register(
 				"$name$",
 				typeof($type$),
 				typeof($ownerclass$),
 				new PropertyMetadata(   // メタデータ
 					"",		// デフォルト値
 					new PropertyChangedCallback(On$name$Changed)) );
 
 	private static void On$name$Changed(DependencyObject obj, DependencyPropertyChangedEventArgs e)
         {
             $ownerclass$ userControl = obj as $ownerclass$;
 
             if (userControl != null)
             {
                 $type$ newValue = ($type$)e.NewValue;
             }
         }
 
 $end$]]>
       </Code>
     </Snippet>
   </CodeSnippet>
 </CodeSnippets>