まずは全体の流れを説明します。
📦DateTimePickerSampleApp
┣ 📂GUI
┃ ┣ 📜MainWindow.xaml
┃ ┗ 📜MainWindow.ps1
┗ 📜App.ps1
App.ps1 ファイルにWPFアプリケーションを作成します。
# App.ps1
Add-Type -AssemblyName PresentationFramework
# GUIファイルの読み込み
$MainWindowXaml = Join-Path $PSScriptRoot "GUI/MainWindow.xaml"
[xml]$xaml = Get-Content $MainWindowXaml
$reader = New-Object -TypeName System.Xml.XmlNodeReader -ArgumentList $xaml
$MainWindow = [Windows.Markup.XamlReader]::Load($reader)
# PowerShellファイルの読み込み
$MainWindowPs1 = Join-Path $PSScriptRoot "GUI/MainWindow.ps1"
. $MainWindowPs1
# イベントの設定
$MainWindow.Add_SourceInitialized($OnMainWindowLoaded)
# アプリケーションの実行
$App = [Windows.Application]::new()
$App.Run($MainWindow)
MainWindow.xaml ファイルにDateTimePickerコントロールを配置します。
<!-- MainWindow.xaml -->
<Window xmlns="<http://schemas.microsoft.com/winfx/2006/xaml/presentation>"
xmlns:x="<http://schemas.microsoft.com/winfx/2006/xaml>"
x:Name="MainWindow"
Title="DateTimePicker Sample" Height="200" Width="300">
<Grid>
<Label Content="日付を選択:" HorizontalAlignment="Left" Margin="10,20,0,0" VerticalAlignment="Top" />
<DatePicker x:Name="datePicker" HorizontalAlignment="Left" Margin="100,20,0,0" VerticalAlignment="Top" />
</Grid>
</Window>
MainWindow.ps1 ファイルでDateTimePickerの操作を行います。