Hallo @All,
erstmal ein frohes neues Jahr an alle.
Ich bin seit einiger Zeit dabei ein kleines Programm zu schreiben XAML Powershell.
Nun, habe ich den XAML teil schon ansatzweise fertig und möchte nun die Funktion des Tools zusammensetzten.
Jetzt bin ich gerade bei dem Punkt Combobox Language und habe da ein Problem, wo ich irgendwie nicht weiter komme.
Die Combobox hat zwei spalten, einmal den Ländercode und die Spalte Code Auflösung.
Wenn ich nun Die Sprache wähle sollte nur der Code in einer Text Datei geschrieben werden und diverse Ordner erstellt werden.
Leider ist das Problem das ich den Wert nicht zurückbekomme so wie ich Ihn benötige.
Habe, in dem Tool div. Comboboxen und rufe diese so ab.
$Vendor = $ComboBoxVendor.Text
Write-Host"$Vendor"
Dies geht aber nicht bei der Language, da anscheinend dies über TextBlocks und Grid.ColumnDefinitions läuft.
könnte mir evtl. da jemand helfen bei der Lösung des Problems.
Habe hier mal ein Code Schnipsel zusammen gebastelt von der Passage mit der Language.
Der Original Code ist schon ca. 1600 Zeilen und das wollte ich hier nicht reinstellen wegen der Länge.
Clear-Host [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') #region XAML GUI [xml]$XAML = @'<Window x:Class="ComboBox.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:ComboBox" mc:Ignorable="d" Title="ComboBox XAML" Height="400" Width="400" WindowStartupLocation="CenterScreen" ResizeMode='NoResize'><Grid Margin="0,0,-0.2,0.2"><!-- Label --><Label x:Name="LabelLanguage" Content="Language" Margin="100,130,0,0" Width="100" Height="26" HorizontalAlignment="Left" VerticalAlignment="Top" Background="#FF98D6EB" OpacityMask="#FF3399FF" Foreground="White" FontWeight="Bold"/><Label x:Name="LabelLanguageSelected" Content="Selected Lang." Margin="100,160,0,0" Width="100" Height="26" HorizontalAlignment="Left" VerticalAlignment="Top" Background="#FF98D6EB" OpacityMask="#FF3399FF" Foreground="White" FontWeight="Bold"/><!-- Textbox, Combobox Button --><StackPanel><ComboBox x:Name="ComboboxLanguage" Margin="220,130,0,0" Width="110" Height="26" IsEditable="false" HorizontalAlignment="Left" VerticalAlignment="Top" BorderBrush="#FF3399FF" Foreground="#FF3399FF" OpacityMask="#FF3399FF" FontWeight="Bold"><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="ar-SA" Grid.Column="0"/><TextBlock Text="Arabic - Saudi Arabia" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="de-DE" Grid.Column="0"/><TextBlock Text="German - Germany" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="en-US" Grid.Column="0"/><TextBlock Text="English - United States" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="fr-FR" Grid.Column="0"/><TextBlock Text="French - France" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="ja-JP" Grid.Column="0"/><TextBlock Text="Japanese - Japan" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="ko-KR" Grid.Column="0"/><TextBlock Text="Korean - Korea" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="pl-PL" Grid.Column="0"/><TextBlock Text="Polish - Poland" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="pt-PT" Grid.Column="0"/><TextBlock Text="Portuguese - Portugal" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="ru-RU" Grid.Column="0"/><TextBlock Text="Russian - Russia" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="tr-TR" Grid.Column="0"/><TextBlock Text="Turkish - Turkey" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="zh-CN" Grid.Column="0"/><TextBlock Text="Chinese - China" Grid.Column="1"/></Grid></ComboBoxItem><ComboBoxItem><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="100"/><ColumnDefinition Width="180"/></Grid.ColumnDefinitions><TextBlock Text="zh-TW" Grid.Column="0"/><TextBlock Text="Chinese - Taiwan" Grid.Column="1"/></Grid></ComboBoxItem></ComboBox></StackPanel><TextBox x:Name="TextBoxLanguageSelected" Margin="220,160,0,0" Width="110" Height="26" HorizontalAlignment="Left" VerticalAlignment="Top" MaxLength="4" BorderBrush="#FF3399FF" Foreground="#FF3399FF" OpacityMask="#FF3399FF" FontWeight="Bold"/><Button x:Name="ButtonExit" Content="Exit" Margin="220,200,0,0" Width="100" Height="34" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="0"/><Button x:Name="ButtonReset" Content="Reset" Margin="100,200,0,0" Width="100" Height="34" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="0"/></Grid></Window> '@ -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^<Win.*', '<Window' #endregion #Read XAML $reader=(New-Object System.Xml.XmlNodeReader $xaml) try{$Form=[Windows.Markup.XamlReader]::Load( $reader )} catch{Write-Host "Unable to load Windows.Markup.XamlReader. Some possible causes for this problem include: .NET Framework is missing PowerShell must be launched with PowerShell -sta, invalid XAML code was encountered."; exit} # Store Form Objects In PowerShell $xaml.SelectNodes("//*[@*[contains(translate(name(.),'n','N'),'Name')]]") | % { Set-Variable -Name ($_.Name) -Value $Form.FindName($_.Name) -Scope Script } #??????????????????????????????? $ComboboxLanguage_SelectedIndexChanged = {$TextBoxLanguageSelected.text = $ComboboxLanguage} $ComboboxLanguage.add_SelectionChanged($ComboboxLanguage_SelectedIndexChanged) #??????????????????????????????? #region Function Reset all inputs Function ResetAllInputs { $ComboboxLanguage.Text = "" $TextBoxLanguageSelected.text = "" } #endregion # Exit forms $ButtonExit.Add_Click({$form.Close()}) # Reset button event $ButtonReset.Add_Click({ResetAllInputs}) $Form.ShowDialog() | out-null
Vielen Dank im Voraus.
Gruß Markus