xamlファイルを読み込んで表示するpowershellスクリプトがあります。 のようにXAMLファイル内の画像を使用する場合:Powershellのxamlでの相対パスの使い方
<Image Source="D:\Test\MyPic.png" />
私は絶対パスを提供する必要があります。相対パスを使用できる構文がありますか? ハックソリューション:XAMLを読むと置き換える
Add-Type -assemblyName PresentationFramework, PresentationCore, WindowsBase
$syncHash = [hashtable]::Synchronized(@{})
$newRunspace =[runspacefactory]::CreateRunspace()
$newRunspace.ApartmentState = "STA"
$newRunspace.ThreadOptions = "ReuseThread"
$newRunspace.Open()
$newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash)
$psCmd = [PowerShell]::Create().AddScript({
[xml]$xaml = @"
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="Window" Title="Initial Window" WindowStartupLocation = "CenterScreen">
<Image Source="D:\Test\MyPic.png" />
</Window>
"@
$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$syncHash.Window=[Windows.Markup.XamlReader]::Load($reader)
$syncHash.Window.ShowDialog() | Out-Null
})
$psCmd.Runspace = $newRunspace
$data = $psCmd.BeginInvoke()
ご注意:XAMLではありません。質問を明確にする
追加の例PowerShellスクリプトで動的な方法で現在のモジュールのパスを「D \テスト」埋め込み。 Powershellは動的にそれを読み取ります。
これは正確に動作しません。私はそれがパワーシェルで実行されているからだと思います。 – Vik
私はそれを編集しました、今それを試してください:) –
アイデアありがとう。これは私が回避しようとする回避策のハックです。私は私の質問を明確にするための小さな例を追加 – Vik