2017-05-15 18 views
0

WPFとXAMLでPowerShellのGUIを構築する上でFoxDeploy's tutorialを読んだ後、私はタブで自分のアプリを構築しました。しかし、私は私のタブが私が望むように行動するように奮闘しています。だから、PowerShellの+ WPF XAML +タブ - 変更]タブ

XAMLファイル

<Window x:Class="Tabs.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:Tabs" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid Width="500"> 
    <TabControl x:Name="TabControl"> 
     <TabItem x:Name="Tab1" Header="First" Width="70"> 
      <Grid x:Name="Tab1Grid" Background="#FFD4D4D4"> 
       <Label Content="Tab 1" VerticalAlignment="Top" FontFamily="Calibri" FontSize="18" HorizontalContentAlignment="Center" Background="#FF5D5656" Foreground="White"/> 
       <Button x:Name="btnTab2" Content="Go to tab 2 " HorizontalAlignment="Left" Margin="405,256,0,0" VerticalAlignment="Top" Width="75"/> 
      </Grid> 
     </TabItem> 
     <TabItem x:Name="Tab2" Header="Second" Width="70"> 
      <Grid x:Name="Tab2Grid" Background="#FFD4D4D4"> 
       <Label Content="This is the second tab" VerticalAlignment="Top" FontFamily="Calibri" FontSize="18" HorizontalContentAlignment="Center" Background="#FF5D5656" Foreground="White"/> 
      </Grid> 
     </TabItem> 
    </TabControl> 
</Grid> 

PS1ファイル

$inputXML = Get-Content -Path path_to_MainTabbedWindow.xaml 
$inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^<Win.*', '<Window' 
[void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') 
[xml]$XAML = $inputXML 
$reader=(New-Object System.Xml.XmlNodeReader $xaml) 
try { $Form=[Windows.Markup.XamlReader]::Load($reader) } 
catch { Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed." } 
$xaml.SelectNodes("//*[@Name]") | %{Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name)} 

$WPFbtnTab2.Add_Click({ 
    # change focus to Tab 2 
    # populate a listview based on input on tab 1 
}) 

$Form.ShowDialog() | out-null 

Picture of PS GUI

、私は "タブ2に移動します" をクリックしたときに、私はタブを表示したい - と同じ上記をクリックすると - しかし、私はまた、入力されたいくつかのコンテンツに基づいて、タブ2のリストビューを設定したいタブ1.上

は、私が上に書かれているか、私は(右、同じもの)タブに別のフォームオブジェクトを使用して非表示/必要に応じて表示する必要がないのと同じ方法でタブを持つことが可能ですか?

ご協力いただきありがとうございます。

+0

は、なぜあなたはしてみてくださいませんか? –

答えて

0

謝罪は、良い離れKBDとマティアスからのコメントから休憩場所に右の脳細胞をクリックしたように見えます。

このトリックでした:

$WPFTabControl.Items[0].IsSelected = $false 
$WPFTabControl.Items[1].IsSelected = $true 
+0

'$ WPFTab2.Focus()は'もトリックを行います –

関連する問題