Set-StrictMode -Version Latest Add-Type -AssemblyName PresentationFramework $xaml = @' <Window Title="テスト" Width="600" Height="300" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <DockPanel> <TextBox AcceptsReturn="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" FontFamily="MS ゴシック" FontSize="16"> テキストを入力してください </TextBox> </DockPanel> </Window> '@ $window = [System.Windows.Markup.XamlReader]::Load( [System.Xml.XmlReader]::Create( [System.IO.StringReader]::new($xaml) ) ) -as [System.Windows.Window] $window.ShowDialog()
Set-StrictMode -Version Latest Add-Type -AssemblyName PresentationFramework $btn = New-Object -TypeName System.Windows.Controls.Button -Property @{ Width = 150 Height = 75 Content = "クリックしてください" } $tBox = New-Object -TypeName System.Windows.Controls.TextBox -Property @{ HorizontalScrollBarVisibility = [System.Windows.Controls.ScrollBarVisibility]::Visible VerticalScrollBarVisibility = [System.Windows.Controls.ScrollBarVisibility]::Visible AcceptsReturn = $true FontFamily = [System.Windows.Media.FontFamily]::new("MS ゴシック") FontSize = 16 Text = "テキストを入力してください" } $panel = [System.Windows.Controls.DockPanel]::new() $panel.Children.Add($btn) $panel.Children.Add($tBox) $wnd = New-Object -TypeName System.Windows.Window -Property @{ Width = 600 Height = 300 Title = "テスト" Content = $panel } $hTextBoxTextChanged = [System.Windows.Controls.TextChangedEventHandler] { param([object]$s, [System.Windows.Controls.TextChangedEventArgs]$e) $btn.Content = "テキストが変更されました" } $hButtonClick = [System.Windows.RoutedEventHandler] { param([object]$s, [System.Windows.RoutedEventArgs]$e) $s.Content = "クリックされました" try { $xaml = $tBox.Text $stringReader = [System.IO.StringReader]::new($xaml) $xmlReader = [System.Xml.XmlReader]::Create($stringReader) $window = [System.Windows.Markup.XamlReader]::Load($xmlReader) -as [System.Windows.Window] $window.ShowDialog() } catch { $_ | Write-Verbose -Verbose } } $tBox.Text = [System.Windows.Markup.XamlWriter]::Save($wnd) -replace "><", ">`n<" $tBox.add_TextChanged($hTextBoxTextChanged) $btn.add_Click($hButtonClick) $wnd.ShowDialog()