В WPF элемент управления UserControl в PowerShell
привет,
Требуется отобразить пользовательский элемент управления в элементе вкладки. Ниже приведен код, который я пытаюсь использовать.
Add-Type -AssemblyName PresentationFramework [xml]$MainXAML = @" <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="42*" /> <RowDefinition Height="269*" /> </Grid.RowDefinitions> <Button Name="Button1" Content="ClickMe" Width="61" Height="20" Margin="12,12,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"></Button> <TabControl Name="tabChildContainer" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Grid.Row="1"></TabControl> </Grid> </Window> "@ [xml]$UserControlXAML = @" <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" Height="292" Width="489"> <Grid> <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="150,86,0,0" Name="button1" VerticalAlignment="Top" Width="75" /> </Grid> </UserControl> "@ $MainReader = New-Object System.Xml.XmlNodeReader $MainXAML $Window_Main= [Windows.Markup.XamlReader]::Load($MainReader) $UC_Reader = New-Object System.Xml.XmlNodeReader $UserControlXAML $Window_UC= [Windows.Markup.XamlReader]::Load($UC_Reader) $MainXAML.SelectNodes("//*[@Name]") | %{ Set-Variable -Name ("WPF_Main_"+$_.Name) -Value $Window_Main.FindName($_.Name) -Scope "Script" } $UserControlXAML.SelectNodes("//*[@Name]") | %{ Set-Variable -Name ("WPF_UC_"+$_.Name) -Value $Window_UC.FindName($_.Name) -Scope "Script" } $script:WPF_Main_button1.Add_Click( { Write-Host -ForegroundColor Green "I am in the click event." $TabItem1 = New-Object System.Windows.Controls.TabItem $TabItem1.Header = "Eureka" $TabItem1.AddChild($WPF_UC_button1) $WPF_Main_tabChildContainer.Items.Add($TabItem1) }) $Window_Main.ShowDialog()
Ниже приведена ошибка. Может ли кто-нибудь помочь мне исправить это? Заранее спасибо.
Exception calling "ShowDialog" with "0" argument(s): "Must disconnect specified child from current parent Visual before attaching to new parent Visual." At line:50 char:1 + $Window_Main.ShowDialog() + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ArgumentException
Что я уже пробовал:
привет,
Я пытаюсь использовать пользовательский элемент управления WPF в PowerShell. Все работает нормально, но когда я выбираю пункт вкладки, то получаю ошибку фокусировки.