在onclick事件中标记可见性 [英] Label visibility from within an onclick event

查看:100
本文介绍了在onclick事件中标记可见性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



我希望也许您可以帮我一些代码。我是

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆