我有一个PowerShell模块,它封装了许多常用的业务功能.通常不会从控制台调用它; 相反,它的功能由导入模块的自动部署和管理脚本调用.
该模块包含一个记录功能,可以写入集中式日志记录位置.我还想加入Write-Verbose功能来写入控制台.
#'Start Script.ps1
#'----------------
Import-Module Corporate
Write-Logger 'Foo'
Run Code Online (Sandbox Code Playgroud)
我的限制是 - 在Corporate PowerShell模块中 - 我需要确定是否已使用-Verbose参数调用Script.ps1 .理想情况下,我希望确定代码完全在模块本身内.
这是一个例子:
[CmdletBinding()]
Param ()
New-Module -Name TempModule -ScriptBlock {
function Test-ModuleVerbose() {
[CmdletBinding()]
Param ()
PROCESS {
$vb = ($PSCmdlet.MyInvocation.BoundParameters['Verbose'] -eq $true)
Write-Host ("1: Module verbose preference: " + ($PSCmdlet.MyInvocation.BoundParameters['Verbose'] -eq $true))
Write-Host ("2: Module verbose preference: " + $Script:VerbosePreference)
Write-Host ("3: Module verbose preference: " + $VerbosePreference)
}
}
} | Out-Null
function Test-Verbose() {
[CmdletBinding()]
Param () …Run Code Online (Sandbox Code Playgroud) 我有一个DockPanel,我以编程方式添加TextBlock控件.DockPanel定义如下:
<DockPanel x:Name="staHeadlines" Margin="0,10,0,0"
ScrollViewer.VerticalScrollBarVisibility="Disabled"/>
Run Code Online (Sandbox Code Playgroud)
TextBlocks添加到DockPanel,如下所示:
For count = headlinePosition To maxHeadlineCount
Dim tb As New TextBlock With {.Text = headlines.Item(count),
.FontFamily = New FontFamily("Segoe UI Semilight"), .FontSize = "22",
.TextWrapping = TextWrapping.Wrap, .Margin = New Thickness(0, 10, 0, 10)}
DockPanel.SetDock(tb, Dock.Top)
staHeadlines.Children.Add(tb)
Next
Run Code Online (Sandbox Code Playgroud)
DockPanel用于显示新闻标题,每个TextBlock一个.我想添加足够的TextBlock来填充可用空间,但不要让底部项溢出DockPanel边界.由于TextBlock的高度是由内容定义的 - 我事先并不知道 - 我需要能够计算添加到DockPanel的所有项目的高度,以确定添加的最后一个子项是否会溢出DockPanel的边界并出现剪裁.
有任何想法吗?