///////////////
// Window02.cs
///////////////
using System;
using System.Windows;
using System.Windows.Controls;			//コントロールを利用する為
using System.Windows.Media.Imaging;		//BitmapFrameを使用する為

namespace Window02
{
	///////////////////////////
	//エントリーポイントクラス
	///////////////////////////
	class MainApp
	{
		[STAThread]
		public static void Main()
		{
			MainWindow mwnd = new MainWindow();
			Application ap = new Application();
			ap.Run(mwnd);
		}
	}

	public partial class MainWindow : Window
	{
		public MainWindow()
		{
			DefWindow();	//ウィンドウのプロパティを設定する
		}

		/* Windowクラスのプロパティを設定する */
		public void DefWindow()
		{
			int swt = 1;
			/* ウィンドウスタイル、クライアントエリア色、アイコンとZオーダーの指定 */
			this.WindowStyle = WindowStyle.ThreeDBorderWindow;	//None、SingleBorderWindow（規定値）、ThreeDBorderWindowまたはToolWindow
			//this.AllowsTransparency = true;					//WindowStyleがNone以外に設定された場合、InvalidOperationExceptionとなる
			this.Background = SystemColors.WindowBrush;			//本例ではウインドウのクライアントエリア色にする
			this.Icon = BitmapFrame.Create(new Uri("Icon.ico", UriKind.Relative));	//同じフォールダーのIcon.icoを読んで使用する
			this.Topmost = false;								//最上位ウィンドウとするか否か
			/* 起動時の位置－上、左座標で指定または、起動時の位置で指定 */
			this.Top = 100;
			this.Left = 100;
			//this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
			/* ウィンドウサイズ－幅、高さで指定または、コンテンツサイズに合わせる */
			this.Width = 640;
			this.Height = 480;
			this.Content = "このウィンドウはWPFベースで、プロパティチェックの為に作られました。";
			//this.SizeToContent = SizeToContent.WidthAndHeight;	//Contentサイズに合わせる（Height、Manual、WidthまたはWidthAndHeight）
			this.ResizeMode = ResizeMode.CanResizeWithGrip;		//CanMinimize、CanResize、CanResizeWithGrip、NoResizeから選択
			this.ShowActivated = true;							//アクティブ状態で初期表示するかどうか（規定値 true）
			this.ShowInTaskbar = true;							//タスクバーにボタン表示するか否か
			this.Title = "Window02";
			//this.IsActive										//ウィンドウがアクティブか否か
			//this.LogicalChildren								//ウィンドウの論理上の子要素に対する列挙子を取得
			//this.OwnedWindows									//このウィンドウがオーナーとなるウィンドウ群
			//this.Owner										//このウィンドウのオーナーウィンドウ
			//this.RestoreBounds								//最小化、最大化前のthisのサイズ（Width, Height）、場所（X, Y）をRectで返す
			//this.TaskbarItemInfo								//Gets or sets the Windows 7 taskbar thumbnail for the Window.
			//this.WindowState									//WindowState.Maximized、MinimizedまたはNormal
			switch(swt)
			{
				case 0:	//テキスト
					this.Content = "このウィンドウはWPFベースで、プロパティチェックの為に作られました。";
					break;
				case 1:	//画像
					Image bmp = new Image();
					bmp.Source = new BitmapImage(new Uri("..\\..\\Samples\\Resources\\resources\\msCat.jpg", UriKind.Relative));
					this.Content = bmp;
					break;
				case 2:	//リッチエディットコントロール
					RichTextBox rtb = new RichTextBox();
					this.Content = rtb;
					break;
			}
		}
	}
}
