在onclick事件中标记可见性 [英] Label visibility from within an onclick event
问题描述
您好,
我希望也许您可以帮我一些代码。我是
1.面向对象编程的新手
2.相对较新的Powershell
3.努力掌握如何使用构造正确触发事件,在没有坏按钮滞后的情况下触发。 (对你的后台工作者代码位感兴趣)
我读过你的文章并喜欢它,因为你似乎从powershell WPF的角度涵盖了所有这些角度
我想知道为什么我似乎无法改变事件内部标签的可见性。相关代码块是粗体MapPrinterButton Onclickevent
我见过的其他例子似乎能够轻松调整标签的内容,但不是它的可见度,我缺少什么?
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
[XML] $ XAML = Get-Content C:\ Users \5022375 \ Document \ MainMainform2.xaml
$ XAML.Window .RemoveAttribute( x:Class)
$ Reader = New-Object System.Xml.XmlNodeReader $ XAML
$ MainForm = [Windows .Markup.XamlReader] :: Load($ Reader)
#EVENT处理程序
#addButton = $ Window.FindName(' addButton')
$ PrintSelect = $ Mainform。 FindName(' Printer_Select')
$ MapPrinterButton = $ Mainform.FindName( Map_Printers_Button')
$ DefaultSelect = $ Mainform。 FindName(' Default_Select')
$ DefaultSelectButton = $ Mainform.FindName( Set_Default_Button')
$ SiteCodeLabel = $ Mainform。 FindName(' Site_Code')
$ SiteCodeLabel.Content = $ clientname
$ PrintersInstalled = Get-WmiObject Win32_Printer -ComputerName 。 | ?名称-NotContains session
$ TMSButton = $ Mainform。 FindName(' Start_TMS')
$ StatusLabel = $ Mainform。 FindName( MappingStatus)
$ StatusLabel.visibility = 隐藏
$ DefaultSelect.Items .Clear()
Foreach($ x in $ PrintersInstalled)
{
$ DefaultSelect.Items .Add($ x .Name。Substring(($ x.Name.LastIndexOf( \)+ 1)))
}
Foreach($ p in $ Printerstochoose)
{
$ PrintSelect.Items .Add($ p)
$ Printselect.Items .Refresh()
}
< big> $ MapPrinterButton .add_click({
$ StatusLabel = $ Mainform。FindName( MappingStatus )
$ StatusLabel.visibility =可见
< / big>
$ WS_Net = New-Object -com Wscript.Network
foreach ($ print in $ PrintSelect.SelectedItems)
{
$ server = $ Printersformatted | Where-Object Printer -EQ $ p | Select Server -First 1
$ Server = $ server.server
$ printstring = \\ $ server \ $ p
写主机使用打印机$ P
try
{
$ WS_Net.AddWindowsPrinterConnection( $ printstring )
}
Catch {
$ Maperror = $ _。Exception.Message
Write-Host $ Maperror -ForegroundColor Red
}
}
$ PrintersInstalled = Get-WmiObject Win32_Printer -ComputerName。
$ DefaultSelect.Items .Clear()
Foreach($ Prin inIn PrintersInstalled)
{
$ DefaultSelect.Items .Add($ x .Name。子串(($ x。Name.LastIndexOf( \ )+ 1)))
}
$ StatusLabel.Visibility =隐藏
})
XAML = Get-Content C:\ Users \5022375 \ Document \ MainMainform2.xaml
XAML.Window .RemoveAttribute( x:Class)
Reader = New-Object System.Xml.XmlNodeReader
Hello,
I was hoping maybe you could help me with a bit of code. I am
1. New to Object Oriented programming
2. Relatively new to Powershell
3. Struggling to get a good grasp on how to construct properly firing events that fire without a bad button lag. (interested in your background worker code bits)
I read your article and loved it as you seem to cover all these angles from a powershell WPF perspective
I was wondering why I cant seem to alter the visibility of a label from inside an event. Relevant code chunk is bolded MapPrinterButton Onclickevent
Other examples I've seen seem to be able to easily adjust the content of the label, but not its visibility, what am I missing?
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
[XML] $XAML = Get-Content "C:\Users\5022375\Documents\Mainform2.xaml"
$XAML.Window .RemoveAttribute("x:Class" )
$Reader = New-Object System.Xml.XmlNodeReader $XAML
$MainForm = [Windows.Markup.XamlReader ]::Load($Reader )
# EVENT Handler
#addButton = $Window.FindName('addButton')
$PrintSelect = $Mainform. FindName('Printer_Select')
$MapPrinterButton = $Mainform.FindName( 'Map_Printers_Button')
$DefaultSelect = $Mainform. FindName('Default_Select')
$DefaultSelectButton = $Mainform.FindName( 'Set_Default_Button')
$SiteCodeLabel = $Mainform. FindName('Site_Code')
$SiteCodeLabel.Content = $clientname
$PrintersInstalled = Get-WmiObject Win32_Printer -ComputerName "." | ? Name -NotContains "session"
$TMSButton = $Mainform. FindName('Start_TMS')
$StatusLabel = $Mainform. FindName("MappingStatus")
$StatusLabel.visibility = "Hidden"
$DefaultSelect.Items .Clear()
Foreach ($x in $PrintersInstalled)
{
$DefaultSelect.Items .Add($x .Name. Substring(($x. Name.LastIndexOf( "\")+ 1)))
}
Foreach ($p in $Printerstochoose)
{
$PrintSelect.Items .Add($p )
$Printselect.Items .Refresh()
}
<big> $MapPrinterButton .add_click({
$StatusLabel = $Mainform. FindName("MappingStatus")
$StatusLabel.visibility = "Visible"
</big>
$WS_Net = New-Object -com Wscript.Network
foreach ($p in $PrintSelect.SelectedItems)
{
$server = $Printersformatted | Where-Object Printer -EQ $p | Select Server -First 1
$Server = $server. server
$printstring = "\\$server \$p"
Write-Host "Working on Printer $P"
try
{
$WS_Net.AddWindowsPrinterConnection( "$printstring" )
}
Catch{
$Maperror = $_. Exception.Message
Write-Host $Maperror -ForegroundColor Red
}
}
$PrintersInstalled = Get-WmiObject Win32_Printer -ComputerName "."
$DefaultSelect.Items .Clear()
Foreach ($x in $PrintersInstalled)
{
$DefaultSelect.Items .Add($x .Name. Substring(($x. Name.LastIndexOf( "\")+ 1)))
}
$StatusLabel.Visibility = "Hidden"
})
XAML = Get-Content "C:\Users\5022375\Documents\Mainform2.xaml"
XAML.Window .RemoveAttribute("x:Class" )
Reader = New-Object System.Xml.XmlNodeReader
这篇关于在onclick事件中标记可见性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!