xaml - Powershell WPF Forms changing textbox background to an image -


i trying make background of text box image in powershell. im using xaml converter http://blogs.technet.com/b/heyscriptingguy/archive/2014/08/01/i-39-ve-got-a-powershell-secret-adding-a-gui-to-scripts.aspx load xaml form:

<window      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     title="uat" height="300" width="300">     <grid>         <button name="btngo" content="go" horizontalalignment="left" verticalalignment="top" width="75" margin="207,240,0,0"/>         <textbox name="txtout" horizontalalignment="left" height="233" textwrapping="wrap" text="textbox" verticalalignment="top" width="272" margin="10,0,0,0"/>     </grid> </window> 

the .ps1 file:

add-type –assemblyname presentationframework add-type –assemblyname presentationcore add-type –assemblyname windowsbase  .\loaddialog.ps1 -xamlpath '.\uat.xaml' 2>> errors.txt  $txtout.text = ""  $btngo.add_click({     $txtout.text = ""     $image = new-object system.windows.media.brush     $image = ".\bg1.png" #.source     $txtout.background = $image })  $xamgui.showdialog() | out-null 2>> errors.txt  

i error:

new-object : constructor not found. cannot find appropriate constructor type system.windows.media.brush. @ uat.ps1:40 char:24 +     $image = new-object <<<<  system.windows.media.brush + categoryinfo          : objectnotfound: (:) [new-object], psargumentexception + fullyqualifiederrorid : cannotfindappropriatector,microsoft.powershell.commands.newobjectcommand  exception setting "background": "cannot convert value ".\bg1.png" type "system.windows.media.brush". error: "token not valid."" @ uat.ps1:44 char:13 +     $txtout. <<<< background = $image + categoryinfo          : invalidoperation: (:) [], runtimeexception + fullyqualifiederrorid : propertyassignmentexception 

i'm loading: presentationframework, presentationcore, windowsbase

what missing? there better way this?

here example works me. it's bit convoluted, that's wpf, me anyway.

you have define uri (path image). based on load bitmapimage , use create imagebrush. can in turn set background of text box.

add-type –assemblyname windowsbase add-type –assemblyname presentationcore add-type –assemblyname presentationframework  [xml]$xaml = @'  <window      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     title="uat" height="300" width="300">     <grid>         <button name="btngo" content="go" horizontalalignment="left" verticalalignment="top" width="75" margin="207,240,0,0"/>         <textbox name="txtout" horizontalalignment="left" height="233" textwrapping="wrap" text="textbox" verticalalignment="top" width="272" margin="10,0,0,0"/>     </grid> </window> '@  $reader=(new-object xml.xmlnodereader $xaml)  $mainform=[windows.markup.xamlreader]::load( $reader )   $xaml.selectnodes("//*[@name]") | %{set-variable -name ($_.name) -value $mainform.findname($_.name) -scope global}  $btngo.add_click({     $txtout.text = ""     $uri = new-object system.uri("d:\documents\map - discovery.png")     $imagesource = new-object system.windows.media.imaging.bitmapimage $uri      $imagebrush = new-object system.windows.media.imagebrush  $imagesource     $txtout.background = $imagebrush })  $mainform.showdialog() | out-null 

Comments

Popular posts from this blog

Android : Making Listview full screen -

javascript - Parse JSON from the body of the POST -

javascript - Chrome Extension: Interacting with iframe embedded within popup -