#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]]