色々とご迷惑をおかけしているタイマー祭に関連し、今回私はWPFアプリに挑戦したいこともありWPFで試してみた事をご紹介します。
といっても一風かわってXAMLを使用しないコードに挑戦したものです。
(今回の試みの目的はベースとなるプログラムの動きを検証する事です。)
とにもかくにもVisualStudio2008 を起動するところからスタート。
新規作成⇒Visual Basic⇒空のプロジェクト の順で選択。
プロジェクト名は適当にNoneXamlWPFとでもしておきます。
そうやってようやく今回のスタートラインです。
ちなみにプロジェクトには何も配置されていません。
参照設定すらされていません。
なので、まずは参照設定から行ってみます。今回参照するのは
- PresentationCore
- PresentationFrameWork
- WindowsBase
の3つです。
次にエントリポイントを作成します。
クラスの追加を行うがクラス名をここではApplication.vbとします。
(これは新規にWPFのプロジェクトを作成する際にApplication.xamlが自動的に作成される為)
エントリポイントなので作るのはSub Main()です。
Imports System
Imports System.Windows
Public Namespace NoneCodeWPF
Public Class Application
<STAThread()> _
Public Shared Sub Main()
Dim app As System.Windows.Application = New System.Windows.Application()
Dim wnd As System.Windows.Window = New System.Windows.Window()
wnd.Title = "初めてのWPF"
wnd.Width = 300
wnd.Height = 200
app.Run(wnd)
End Sub
End Class
End Namespace
それまでのWindowsフォームアプリケーションと違うのはApplicationクラスがSystem.Windows.Forms名前空間ではなくSystem.Windows名前空間からもちいられており、参照しているアセンブリはSystem.Windows.Formsではなく、PresentationFrameworkです。
さて、私がなにげなくそれまでと違うと感じたのはWPFのApplicationクラスとWindowsフォームのApplicationクラスのちがいで、何よりもWPFのApplicationクラスにはコンストラクタが存在するということです。
と、いう事は、こんな事もできちゃいます。
Imports System
Imports System.Windows
Public Namespace NoneCodeWPF
Public Class Application
Inherits System.Windows.Application()
<STAThread()> _
Public Shared Sub Main()
Dim app As Application = New NoneCodeWPF.Application()
Dim wnd As Window = New System.Windows.Window()
wnd.Title = "初めてのWPF"
wnd.Width = 300
wnd.Height = 200
app.Run(wnd)
End Sub
End Class
End Namespace
中途半端で申し訳ありませんが、今日はここまでです。