#freeze
[[.NET]]


.NETアプリでよくあるので「実行ファイル.config」にデータを保存してあって、わざわざ自前の設定ファイルを作らないっていうのがあるわよね。あれをやってみるわ。

とりあえず、マニュアルで登録しましょう。

* 手順 [#g2d7304c]

** リソースの定義 [#madf93ec]

(VS頼りでなくxamlにリソース定義する方法もあるけど、それはまた別の話で)

Visual Studio(2010や2013あたりならたぶん共通)のソリューションエクスプローラーで『Settings.settings』っていうのをダブルクリックすると、以下のようなのが開くわよね?ここに値を登録するの。うちは壁紙を貼る事にしたから、wallpaperって名前にしたわ。ファイル名をフルパスで入れるから、型はもちろん string(文字列) ね。

#ref(settings.jpg)

** コードで表現する場合は? [#i9e06d6e]

これにアクセスする方法は、以下のように書くの。

 Properties.Settings.Default.wallpaper;

** 保存法は? [#d9df0b32]

プロパティだから起動時は自動で読み込まれるけど、保存はそうはいかない。明示的にやらないとね。

保存するには、以下のようにするの。

 Properties.Settings.Default.Save();

** 実際に使ってみる。 [#idc7e0aa]

*** コード [#x16bef48]

さて、それじゃあ実際に読み込んで使ってみましょう。壁紙だから起動時に貼り付けましょうか。

まず、絵を貼り付けるカンバスを MainWindow.xaml に設定しましょう。

 <Window x:Class="clock2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Canvas x:Name="a1">
        <Canvas.Background>
            <ImageBrush x:Name="ibb" Opacity="0.8" />
        </Canvas.Background>
    </Canvas>
 </Window>


それで、実際に画像を貼り付けるコード。

       private static string wallpaper = "";
       private BitmapImage b_ima = null;
 
        public MainWindow()
        {
            InitializeComponent();
            wallpaper = Properties.Settings.Default.wallpaper;
            if (File.Exists(wallpaper) == true)
            {
                // 記録通りに壁紙を貼る
                b_ima = new BitmapImage();
                b_ima.BeginInit();
                b_ima.UriSource = new Uri(wallpaper); 
                b_ima.EndInit();
                ibb.ImageSource = b_ima;
                ibb.Stretch = Stretch.Uniform;
            }
        }


*** 実行結果 [#j4b089a5]

で、実行結果。うまくいったかしら?

#ref(shot-wall.png)

あと、画像のかわいい生き物が何かについての情報はこっちね。

- [[たこルカとは (タコルカとは) [単語記事] - ニコニコ大百科>http://dic.nicovideo.jp/a/%E3%81%9F%E3%81%93%E3%83%AB%E3%82%AB]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS