Добавьте элементы в выпадающий список в WPF на холсте - PullRequest
0 голосов
/ 14 ноября 2018

Добрый день,

Я хочу добавить определенные элементы в свой список, но возникла ошибка.

Код:

Add-Type -AssemblyName PresentationFramework

[xml]$Form = @"

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    Title="Printer GUI" Height="465" Width="375">
    <Canvas Background="White">
        <Label Name="label_username" Content="Username" HorizontalAlignment="Left" Margin="30,30,0,0" VerticalAlignment="Top"/>
        <Label Name="label_Location" Content="Select Location" HorizontalAlignment="Left" Margin="170,30,0,0" VerticalAlignment="Top"/>
        <TextBox Name="textbox_username" HorizontalAlignment="Left" Height="23" Margin="30,56,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        <ComboBox Name="ComboBox_Location" HorizontalAlignment="Left" Margin="170,56,0,0" VerticalAlignment="Top" Width="160"/>
            <ComboBoxItem Content="X"/>
            <ComboBoxItem Content="Y"/>
            <ComboBoxItem Content="Z"/>
        </ComboBox>  
        <Label Name="label_printer" Content="Please select printer from list" HorizontalAlignment="Left" Margin="30,105,0,0" VerticalAlignment="Top"/>
        <ComboBox Name="ComboBox_Printer" HorizontalAlignment="Left" Margin="30,131,0,0" VerticalAlignment="Top" Width="300"/>
        <CheckBox Name="CheckBox" Content="Check here if you want to add this printer &#xA;&#x9;to your permanent list" HorizontalAlignment="Left" Margin="56,185,0,0" VerticalAlignment="Top" Height="39" Width="245"/>
        <Button Name="Button_Add" Content="Add Printer" Margin="140,244,140,150" Width="75" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
        <Button Name="Button_XPS" Content="Printer Defaults issue&#xD;&#xA;  in Practice Partner" Margin="90,285,90,102" Width="175" Height="40" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" ClickMode="Release" VerticalAlignment="Center"/>
        <Button Name="Button_Service" Content="Service call for Printer" Margin="113,343,110,51" Width="130" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
        <Button Name="Button_Cancel" Content="Cancel" Margin="140,384,140,10" Width="75" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
    </Canvas>
</Window>

"@

$NR=(New-Object System.Xml.XmlNodeReader $Form)
$Win=[Windows.Markup.XamlReader]::Load($NR)

$Win.Showdialog()

Как видите, я пытался добавить элементы, но ошибка заключается в следующем;

Cannot convert value "<Window xmlns=...</Window>" to type "System.Xml.XmlDocument".
Error: "The 'Canvas' start tag on line 4 position 6 does not match the end tag of 
'ComboBox'. Line 12, position 11."
At H:\Scripts\Form_Main_XAML.ps1:3 char:1
+ [xml]$Form = @"
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException

Я впервые в Visual Studios, и этот код был WinForms до этого. Спасибо всем заранее.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Ваш комбинированный список XAML имеет закрывающий тег, когда он не должен:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    Title="Printer GUI" Height="465" Width="375">
    <Canvas Background="White">
        <Label Name="label_username" Content="Username" HorizontalAlignment="Left" Margin="30,30,0,0" VerticalAlignment="Top"/>
        <Label Name="label_Location" Content="Select Location" HorizontalAlignment="Left" Margin="170,30,0,0" VerticalAlignment="Top"/>
        <TextBox Name="textbox_username" HorizontalAlignment="Left" Height="23" Margin="30,56,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        <ComboBox Name="ComboBox_Location" HorizontalAlignment="Left" Margin="170,56,0,0" VerticalAlignment="Top" Width="160">
            <ComboBoxItem Content="X"/>
            <ComboBoxItem Content="Y"/>
            <ComboBoxItem Content="Z"/>
        </ComboBox>  
        <Label Name="label_printer" Content="Please select printer from list" HorizontalAlignment="Left" Margin="30,105,0,0" VerticalAlignment="Top"/>
        <ComboBox Name="ComboBox_Printer" HorizontalAlignment="Left" Margin="30,131,0,0" VerticalAlignment="Top" Width="300"/>
        <CheckBox Name="CheckBox" Content="Check here if you want to add this printer &#xA;&#x9;to your permanent list" HorizontalAlignment="Left" Margin="56,185,0,0" VerticalAlignment="Top" Height="39" Width="245"/>
        <Button Name="Button_Add" Content="Add Printer" Margin="140,244,140,150" Width="75" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
        <Button Name="Button_XPS" Content="Printer Defaults issue&#xD;&#xA;  in Practice Partner" Margin="90,285,90,102" Width="175" Height="40" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" ClickMode="Release" VerticalAlignment="Center"/>
        <Button Name="Button_Service" Content="Service call for Printer" Margin="113,343,110,51" Width="130" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
        <Button Name="Button_Cancel" Content="Cancel" Margin="140,384,140,10" Width="75" Height="25" VerticalAlignment="Center" ClickMode="Release"/>
    </Canvas>
</Window>
0 голосов
/ 14 ноября 2018

Ваш блок с надписью:

<ComboBox Name="ComboBox_Location" HorizontalAlignment="Left" Margin="170,56,0,0" VerticalAlignment="Top" Width="160"/>
    <ComboBoxItem Content="X"/>
    <ComboBoxItem Content="Y"/>
    <ComboBoxItem Content="Z"/>
</ComboBox>  

Первая строка заканчивается />, в котором этот закрывающий тег обозначает конец определения ComboBox. Вместо этого вы хотите завершить его > и позволить соответствующей строке </ComboBox> закрыть ваш блок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...