2012年3月18日日曜日

[メモ] Windows Phoneアプリ公開にあたって抑えておくこと

とリストアップしたけど、結局 http://thinkit.co.jp/book/2012/03/15/3475 に十分まとまっていた。 (2012.3.22 URL 追加)
(2012.3.23 追記)

2012年3月12日月曜日

WP7: アプリケーションの設定の保存

IsolatedStorageSettings.ApplicationSettings を使ってアプリケーションの設定を保存します。
key は string 型、value は object 型。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.IO.IsolatedStorage;
using System.Diagnostics;

namespace ApplicationSettingsTest
{
    public partial class MainPage : PhoneApplicationPage
    {
        // コンストラクター
        public MainPage()
        {
            InitializeComponent();

            IsolatedStorageSettings settings =  IsolatedStorageSettings.ApplicationSettings;

            // 登録済みの値を出力
            foreach (var s in settings)
            {
                Debug.WriteLine("settings[{0}] = {1}", s.Key, s.Value);
            }
            // 登録件数を出力
            Debug.WriteLine("count: {0}", settings.Count());

            // 値を複数登録
            for (int i = 0; i < 3; i++)
            {
                string key = string.Format("key{0}", i);
                // Add() では上書きはできないので消す
                if (settings.Contains(key))
                {
                    settings.Remove(key);
                    Debug.WriteLine("{0}: removed", key);
                }
                settings.Add(key, "value hoge");
            }

            // 辞書の場合は上書き可能
            settings["key"] = "aValue";

            // TryGetValue は、キーがない時 false を返す
            string value1;
            if (settings.TryGetValue<string>("key", out value1))
                Debug.WriteLine("type is string");

            // 型が違う場合は例外が送出される
            //int value2;
            //if (settings.TryGetValue<int>("key", out value2))
            //    Debug.WriteLine("type is not int");

            // 書き込む
            settings.Save();

            // 全削除
            //settings.Clear();
        }
    }
}

2012年3月11日日曜日

wp7: テキストの色を C# から変更する

<TextBlock Name="aTextBlock" Foreground="Black"/>
という XAML があったときに、
aTextBlock.Foreground = new SolidColorBrush(Colors.Red);
などとします。
... とテキストの色を変えるためだけにインスタンスを生成するのは馬鹿げているような気もするけど、そういうもの??