从WPF XAML PowerShell脚本的主窗口访问UserControl元素/属性

克里斯

我编写了以下Test.ps1PowerShell脚本来显示WPF GUI:

function LoadXamlFile( $path )
{
    [System.Xml.XmlDocument]$xml = Get-Content -Path $path
    $xmlReader = New-Object -TypeName System.Xml.XmlNodeReader -ArgumentList $xml
    $xaml = [System.Windows.Markup.XamlReader]::Load( $xmlReader )
    return $xaml
}

# Main Window
$MainWindow = LoadXamlFile 'MainWindow.xaml'

# Page 1
$Page1 = LoadXamlFile 'Page1.xaml'
$MainWindow.Content = $Page1

$TextBox1 = $MainWindow.FindName('TextBox1')
# The following line fails because $TextBox1 is null
$TextBox1.Text = 'test'

$MainWindow.ShowDialog()

此脚本需要以下两个XAML文件:

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="WPF Test" Height="200" Width="400">
</Window>

Page1.xaml

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Name="Page1">
    <Grid>
        <TextBox x:Name="TextBox1" HorizontalAlignment="Center" Height="23" Margin="0,-40,0,0" TextWrapping="Wrap" VerticalAlignment="Center" Width="120"/>
        <Button x:Name="Button1" Content="Next" HorizontalAlignment="Center" Margin="0,40,0,0" VerticalAlignment="Center" Width="76"/>
    </Grid>
</UserControl>

如我的PowerShell代码中所述,问题是在将UserControl添加到主窗口后,我无法访问UserControl元素/属性。我知道我可以用它来访问它,$Page1.FindName('TextBox1')但是有没有一种方法可以从$MainWindow对象中访问它呢?

鲁巴诺夫

你必须做FindNameContent$MainWindow

$TextBox1 = $MainWindow.Content.FindName("TextBox1")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在WPF XAML PowerShell脚本中将UserControl添加到窗口的最佳实践

来自分类Dev

WPF UserControl xaml的标记无效

来自分类Dev

WPF + XAML + DataGrid + Powershell 2.0

来自分类Dev

访问XAML WPF中创建的UI元素

来自分类Dev

C#是从App.xaml.cs访问WPF主窗口中的Static属性时导致此奇怪行为的原因

来自分类Dev

C#WPF XAML在UserControl负载上运行XAML命令

来自分类Dev

在xaml窗口和usercontrol WPF之间传递参数

来自分类Dev

WPF窗口/用户控件继承XAML

来自分类Dev

WPF中的XAML弹出窗口溢出

来自分类Dev

WPF-XAML页面中心到窗口

来自分类Dev

WPF / Xaml - 获取动态元素的高度

来自分类Dev

WPF:在 XAML 中多次使用元素

来自分类Dev

在“对象”上找不到WPF / XAML属性

来自分类Dev

如何从XAML设置WPF用户控件属性?

来自分类Dev

xaml无法识别模型的属性(WPF MVVM)

来自分类Dev

链接依赖项属性xaml wpf

来自分类Dev

WPF从XAML更改属性操作

来自分类Dev

如何在XAML WPF窗口中具有动态元素

来自分类Dev

在 App.xaml 样式 WPF 中访问用户控件属性

来自分类Dev

WPF / Xaml中取决于属性的不同UI元素

来自分类Dev

使用专用XAML文件在WPF中替换元素的BackGround属性

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

WPF:将变量从父xaml传递到usercontrol

来自分类Dev

C#XAML WPF在UserControl上渲染之前使用参数

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

C#XAML WPF在UserControl上渲染之前使用参数

来自分类Dev

在WPF中重构XAML

来自分类Dev

XAML文件(WPF)的编译

来自分类Dev

WPF重用XAML资源