【发布时间】:2018-08-28 04:57:59
【问题描述】:
每次将 WPF 文本框中的文本保存到文本文件时,PowerShell 都会添加一个前导空格(从第二行开始到每一行)。下面的代码演示了这种行为。从一个只有几行的文本文件开始,点击保存、关闭、重新打开以查看此行为。
Test1
Test2
Test3
更改为
Test1
Test2
Test3
当文本框的文本保存到文本文件时,有什么方法可以避免这个前导空格?
[xml]$xaml=@"
<Window
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:Test"
Title="MainWindow" Height="450" Width="500">
<Grid>
<TextBox x:Name="Userinput" Height="140" TextWrapping="Wrap" VerticalAlignment="Top" AcceptsReturn="True" AcceptsTab="True" Padding="4" VerticalScrollBarVisibility="Auto" />
<Button x:Name="Save" Content="Save" HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" IsDefault="True" Height="22" Margin="170,150,0,0" />
</Grid>
</Window>
"@
$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$Window=[Windows.Markup.XamlReader]::Load($reader)
#Turn XAML into PowerShell objects
$xaml.SelectNodes("//*[@*[contains(translate(name(.),'n','N'),'x:Name')]]") | ForEach-Object{
Set-Variable -Name ($_.Name) -Value $Window.FindName($_.Name)
}
#Load text from text file.
$Userinput.Text = Get-Content -Path "C:\temp\userinput.txt" -Delimiter "`r`n"
#Save text
$save.Add_Click({$Userinput.Text | Out-File -NoNewline "C:\temp\userinput.txt"})
#Display Form
$Window.ShowDialog() | Out-Null
【问题讨论】:
标签: wpf powershell