none
WPF vers powershell : impossible de charger la form RRS feed

  • Question

  • Bonjour,

    Je débute sur powershell et je fait un script avec interface graphique.

    J'ai fait plein de tests concernant le passage WPF vers powershell et je coince.

    Add-Type -AssemblyName PresentationFramework
    $xamlFile = "DataGrid-PowerShellExample-main\MainWindow.xaml"
    $inputXAML = Get-Content -Path $xamlFile -Raw
    $inputXAML=$inputXAML -replace 'mc:Ignorable="d"','' -replace "x:N","N" -replace '^<Win.*','<Window'
    [XML]$XAML=$inputXAML
    $reader = New-Object System.Xml.XmlNodeReader $XAML
    try{
        $form1=[Windows.Markup.XamlReader]::Load($reader)
    }catch{
        Write-Host $_.Exception
        throw
    }
    $xaml.SelectNodes("//*[@Name]") | ForEach-Object {
        try{
            Set-Variable -Name "var_$($_.Name)" -Value $form1.FindName($_.Name) -ErrorAction Stop
        }catch{
            throw
        }
    }
    $form1.ShowDialog()

    <Window x:Name="" x:Class="WpfApp1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp1"
            mc:Ignorable="d"
            Title="Archive URA" Height="959" Width="1200">
        <Grid x:Name="Forms" Margin="-23,0,1,-2" RenderTransformOrigin="0.5,0.5" Width="1200">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="17*"/>
                <ColumnDefinition Width="48*"/>
                <ColumnDefinition Width="1135*"/>
                <ColumnDefinition Width="0*"/>
            </Grid.ColumnDefinitions>
            <Grid.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="-0.034"/>
                    <TranslateTransform/>
                </TransformGroup>
            </Grid.RenderTransform>
            <Button x:Name="btn_search" Grid.Column="2" Content="Rechercher" HorizontalAlignment="Left" Height="41" Margin="585,121,0,0" VerticalAlignment="Top" Width="186" Click="Button_Click" FontFamily="Cambria" FontSize="16"/>
            <ComboBox x:Name="ddlService" Grid.Column="2" HorizontalAlignment="Left" Height="36" Margin="207,121,0,0" VerticalAlignment="Top" Width="269" IsDropDownOpen="True" IsEditable="True" FontFamily="Cambria" FontSize="16"/>
            <DataGrid x:Name="ServiceDataTable" Grid.Column="2" Margin="100,200,123,207" d:ItemsSource="{d:SampleData ItemCount=5}" Background="#FFF6EEEE" RenderTransformOrigin="0.5,0.5" ScrollViewer.CanContentScroll="True" FontFamily="Cambria" FontSize="20">
                <DataGrid.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform AngleY="-0.07"/>
                        <RotateTransform/>
                        <TranslateTransform Y="-0.55"/>
                    </TransformGroup>
                </DataGrid.RenderTransform>
            </DataGrid>
            <Label Grid.Column="2" Content="Filtrer" HorizontalAlignment="Left" Height="33" Margin="107,121,0,0" VerticalAlignment="Top" Width="93" FontFamily="Cambria" FontSize="16"/>
            <Label Grid.Column="2" Content="Selection :" HorizontalAlignment="Left" Margin="107,769,0,0" VerticalAlignment="Top" Height="33" Width="104" FontFamily="Cambria" FontSize="16"/>
            <Label Grid.Column="2" Content="Statut : " HorizontalAlignment="Left" Margin="107,855,0,0" VerticalAlignment="Top" Width="90" FontFamily="Cambria" FontSize="16" Height="29"/>
            <Label x:Name="lblresultid" Grid.Column="2" Content="" HorizontalAlignment="Left" Margin="326,769,0,0" VerticalAlignment="Top" Width="104" FontFamily="Cambria" FontSize="16" Height="29"/>
            <Label x:Name="lblStatus" Grid.Column="2" Content="" HorizontalAlignment="Left" Margin="326,855,0,0" VerticalAlignment="Top" Width="147" Cursor="" FontFamily="Cambria" FontSize="16" Height="29"/>
            <Label Grid.Column="2" Content="Update" HorizontalAlignment="Left" Margin="838,855,0,0" VerticalAlignment="Top" Height="30" Width="89" FontFamily="Cambria" FontSize="16"/>
            <Button x:Name="btn_edit" Grid.Column="2" Content="Modifier" HorizontalAlignment="Left" Height="30" Margin="979,855,0,0" VerticalAlignment="Top" Width="134" FontFamily="Cambria" FontSize="16"/>
            <ComboBox x:Name="ddlHeader" Grid.Column="2" HorizontalAlignment="Left" Height="30" Margin="210,74,0,0" VerticalAlignment="Top" Width="266" IsReadOnly="True" FontFamily="Cambria" FontSize="16"/>
            <Label Grid.Column="2" Content="En-tête" HorizontalAlignment="Left" Height="29" Margin="107,75,0,0" VerticalAlignment="Top" Width="72" FontFamily="Cambria" FontSize="16"/>
        </Grid>
    </Window>

    Et voici l'erreur :

    Exception lors de l'appel de « Load » avec « 1 » argument(s) : « Échec de la création d'un 'Click' à partir du texte 'Button_Click'. »
    Au caractère Ligne:10 : 5
    +     $form1=[Windows.Markup.XamlReader]::Load($reader)
    +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
        + FullyQualifiedErrorId : XamlParseException


    Et quand j'enlève mon bouton "Button_Click "clique j'ai cette ereur :

    Exception lors de l'appel de «Load» avec «1» argument(s): «Impossible de définir le membre inconnu
    '{http://schemas.microsoft.com/expression/blend/2008}ItemsSource'.»
    Au caractère Ligne:10 : 5
    +     $form1=[Windows.Markup.XamlReader]::Load($reader)
    +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
        + FullyQualifiedErrorId : XamlParseException

    Quelqu'un peut-il m'aider svp ?

    vendredi 2 décembre 2022 23:08