Ключ ввода Capture в текстовом поле XAML, запущенном в Powershell - PullRequest
0 голосов
/ 11 февраля 2019
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName PresentationCore
Add-Type -AssemblyName WindowsBase

[xml]$xaml = @"
<Window 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Name Change" Height="260" Width="800"
        x:Name="Window">

    <Grid>
        <TextBox x:Name="txtUPN" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="32,155,0,0"/>

    </Grid>
</Window>
"@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)

$upn = $Window.FindName('txtUPN')

$upn.Add_KeyDown(
    {if ($_.KeyCode -eq "Enter") 
    {$upn.Text | Out-Host}})

# KeyDown event fires, but doesn't capture the Enter key

$window.ShowDialog()

Используя Powershell с графическим интерфейсом XAML, у меня есть 3 различных текстовых поля, которые я хотел бы использовать клавишу Enter для запуска вызова функции, но ничего, с чем я сталкиваюсь, похоже, не работает.Что-то я не вижу, какая-то сборка отсутствует?Кажется, ничто не может распознать Enter, и я даже пробовал KeyChar на KeyPress.Я не заинтересован в событии окна формы, я предпочитаю событие текстового поля.Кажется, заставляет вас использовать кнопки.Благодаря.

...