WIX equivalent of a C# textbox? - user-interface

I'm staring at this page wondering which control is a textbox.
Seems like it should be obvious, but I don't see it.
http://wix.sourceforge.net/manual-wix2/wix_xsd_control.htm
Also, is there a built-in "Browse" button to select a file from disk?
Or do you have to code all that yourself?
Thanks,
Neal

I finally found the textbox (second one below). It was a matter of setting the Type="Edit".
When I was looking at the web page mentioned, I was first looking only at "children" thinking that I would see a textbox there.
<Control Id="Description2" Type="Text" X="135" Y="140" Width="220" Height="20" Transparent="yes"
NoPrefix="yes" Text="Full path to settingsFile:" />
<Control Id="UserSettingsFileName" Type="Edit"
X="140" Y="150" Width="160" Height="80" Property="SettingsFilename"
Text="C:\Path\SettingsFileGenerator.xml">
The initial value of the edit/box was not set to the text I specified. Any ideas on that? Do I have to set the property value outside of the control?
But if there is an reasonably easy-to-use "browse"/file-picker, I'd like to know about that too.

The wix sources contain a BrowseDlg.wxs file. This file defines the dialog which is used in WixUI_InstallDir to allow the user to enter or browse for the install path, which is exactly the type of functionality you need.
It looks like you just have to use the Type "PathEdit". You also have to give the property where you want the result to be stored, in this case _BrowseProperty:
<Control Id="PathEdit" Type="PathEdit"
X="25"
Y="202"
Width="320"
Height="18"
Property="_BrowseProperty"
Indirect="yes" />

Related

WIX installer - pass variable to the next window

I'm trying to implement the next scenario:
'Welcome dialog' -> 'Service name dialog' -> 'Installation path dialog'
Service name dialog is a custom one. User is supposed to input the name of the service and after pressing 'Next' button - at the 'Installation path dialog' shoul appear default path like ".....\inserted_value_on_previous_window".
At 'Service name dialog' I have Edit Control implemented like:
<Control Id="ServiceValueEdit" Type="Edit" X="15" Y="60" Width="200" Height="15" Property="WIXUI_SELECTEDSERVICENAME" Indirect="yes" />
So it is supposed to set WIXUI_SELECTEDSERVICENAME property.
For setting default installation path at 'Installation path dialog' I use code like:
<Property Id="WIXUI_SELECTEDSERVICENAME" Value="SELECTEDSERVICENAME"></Property>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
<SetDirectory Id="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]" Sequence="both"></SetDirectory>
But, unfortunately, when we go to 'Servic name dialog' and set any value - it does not get reflected on the next screen. The next window will alvays have default value SELECTEDSERVICENAME. What I think it gets set just one at the compilation time and does not get updated during the runtime.
Can anyone help to fugure out how it is possible to get this value be set from one window and being ransferred to the next one?
Thank you.
To be clear here are the couple of screenshots:
So what I want to do is to make the dialog below this string contain 'name' (as shown on the picture abowe) instead of 'SELECTEDSERVICENAME' as listed below.
You are setting the value of INSTALLDIR to [DEFIISFOLDER][WIXUI_SELECTEDSERVICENAME] during the initial setup of the install. That means you are using the initial value of WIXUI_SELECTEDSERVICENAME when setting the INSTALLDIR property.
You need to publish an event when you switch UI pages which will update the installdir.
I think something similar to:
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
<Publish Property="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]">1</Publish>
</Control>
would update the INSTALLDIR property with the new WIXUI_SELECTEDSERVICENAME value.

Removing underline from hyperlink in Windows Store app

I'm creating a universal Windows Runtime App for Windows Phone 8.1 and Windows 8.1 using Xaml and C#.
I have inline hyperlinks setup as so -
<TextBlock Width="400" TextWrapping="Wrap">
<Span FontSize="20">
This is an example of how Hyperlink can be used in a paragraph of text. It might be helpful for you look to
<Hyperlink NavigateUri="http://www.bing.com">bing</Hyperlink>
for more answers in the future.
</Span>
</TextBlock>
This will display the text with a underline indicating the clickable hyperlink. However I want to indicate hyperlinks by color not underline as I can have multiple of them in a TextBlock.
I want to remove the underline from the inline Hyperlinks - TextDecorations property no longer exists in WP 8.1 and Windows 8.1 Store apps.
Note* I'm using Hyperlink element not HyperlinkButton as I need to have the links inline with text.
I would write a comment, but my reputation is not enough to do that.
I tried the same code on a blank both win 8.1 and win phone 8.1 project. However, the hyperlink is displayed with color by default, not with an underline as opposed to your project. My code is like below
<TextBlock Width="400" TextWrapping="Wrap">
<Span FontSize="20">
This is an example of how Hyperlink can be used in a paragraph of text. It might be helpful for you look to
<Hyperlink NavigateUri="http://www.bing.com" Foreground="#FF0007FF">bing</Hyperlink>
for more answers in the future.
</Span>
</TextBlock>
Could you try the Foreground property? Maybe it helps you.
In the final version of Windows 8.1 the Hyperlink-element doesn't have an underline. Maybe the confusion was caused by the focus border around the hyperlink? So the XAML:
<TextBlock Width="400" TextWrapping="Wrap" VerticalAlignment="Center">
<Span FontSize="20">
This is an example of how Hyperlink can be used in a paragraph of text. It might be helpful for you look to
<Hyperlink NavigateUri="http://www.bing.com">bing</Hyperlink>
for more answers in the future.
</Span>
</TextBlock>
Shows as:
One thing that can trick the viewer is that if the page doesn't have any other focusable items, the Hyperlink gets the focus and a border is drawn around it. This may look like it has underline:
If you want to get rid of that, add Button with Opacity 0 to the top of the page.
If you want to style the Hyperlink, you can overwrite it using the following keys:
<SolidColorBrush x:Key="HyperlinkDisabledThemeBrush" Color="#66000000" />
<SolidColorBrush x:Key="HyperlinkForegroundThemeBrush" Color="#FF4F1ACB" />
<SolidColorBrush x:Key="HyperlinkPointerOverForegroundThemeBrush" Color="#CC4F1ACB" />
<SolidColorBrush x:Key="HyperlinkPressedForegroundThemeBrush" Color="#994F1ACB" />
So if you have the following App.xaml.cs:
<Application.Resources>
<ResourceDictionary>
<SolidColorBrush x:Key="HyperlinkForegroundThemeBrush" Color="Green" />
</ResourceDictionary>
</Application.Resources>
You will get a green Hyperlink:
If you want the link to have underline, you can use the Underline-element. The XAML:
<TextBlock Width="400" TextWrapping="Wrap" VerticalAlignment="Center">
<Span FontSize="20">
This is an example of how Hyperlink can be used in a paragraph of text. It might be helpful for you look to
<Hyperlink NavigateUri="http://www.bing.com"><Underline>bing</Underline></Hyperlink>
for more answers in the future.
</Span>
</TextBlock>
And the result:
In my app I'm using
<Hyperlink TextDecorations="None" ...></Hyperlink>
to get rid of the underline.

No Fields in XamDataGrid

Good day!
I have datasource, which is 100% pupulated. I'm sure in it because when AutoGenerateFields property is set to True all availble data is received and successfully displayed. But, what i really need to achieve is to display only fixed set of fields. If i set AutoGenerateFields to False i receive all record the same way, but NO columns at all.
Here is my XAML code:
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout >
<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings AutoArrangeCells="Never"/>
</igDP:FieldLayout.Settings>
<igDP:FieldLayout.Fields>
<igDP:Field Name="Article" Label="Article" Row="0" Width="Auto" IsScrollTipField="True" Column="0"/>
<igDP:Field Name="Condition" Label="Condition" Row="0" Width="Auto" Column="1"/>
<igDP:Field Name="Description" Label="Description" Row="0" Width="Auto" Column="2"/>
<igDP:Field Name="Standartprice" Label="St. price" Row="0" Width="Auto" IsScrollTipField="True" Column="3"/>
<igDP:Field Name="Listprice" Label="List price" Width="Auto" Row="0" Column="4" />
<igDP:UnboundField Name="RowDetails" Row="1" Column="0" ColumnSpan="4">
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
I can't understand where is the trouble in my XAML markup.
I will be grateful for any help.
You must make sure that the Name you give the field matches exactly to the bound datasource's properties. If one of them is wrong it will not display any, remember that it is also case sensitive.
Should Standartprice be StandardPrice?
DarkIce's comment is probably right. To help with locating the specific Field involved, you can also check the Output tab in Visual Studio, where incorrectly named bindings will be reported.
That said, that hasn't always solved the problem for me when the mysterious "blank grid" appears, but it's the first place I look.

Windows Phone 7 Databinding Outside Attributes (Nonstatic Hyperlink text)

I currently have a listBox in a WP7 application that uses databinding to populate it. The problem I'm having though is with this particular line:
<Hyperlink NavigateUri="{Binding LinkUrl}" TargetName="_blank">{Binding Name}</Hyperlink>
It seems that I can't bind things in this way (outside of an element's attributes). All this does is create a hyperlink with the literal text {Binding Name} linked to the url. Instead what I'm looking for is for it to use the actual Name variable in its place.
I've tried googling for an answer and looked into the Inlines attribute, but I keep coming up empty handed.
Any help would be appreciated
In WPF, the space between the tags is usually the 'content' (but not always) and bindable via the Content property. I'm unfamiliar with <Hyperlink> in Windows Phone, but a <HyperlinkButton> should work just as well.
<HyperlinkButton NavigateUri="{Binding LinkUrl}" TargetName="_blank" Content="{Binding Name}"/>
EDIT: For a <Hyperlink> in a <RichTextBox> try this:
<RichTextBox>
<Paragraph>
<Hyperlink>
<Hyperlink.Inlines>
<Run Text="{Binding Name}"/>
</Hyperlink.Inlines>
</Hyperlink>
</Paragraph>
</RichTextBox>

How do I get a usemap working within a firefox XUL document

In my XUL I have the following code fragments:
<map name="KeypadMap">
<area href="javascript:pad('A')" coords="1,1,31,31" shape="rect"/>
</map>
...
<hbox flex="1">
<image src="./keypad.png" width="32" height="32" useMap="#KeypadMap"/>
</hbox>
The image displays just fine, however, when I mouse over, the cursor does not change to a hand, and clicking does not call the pad function.
Similar code works fine in straight HTML, so there must be some trick to get it working via a Firefox XUL file.
You'll have to use a namespace to embed HTML inside of XUL. Check this guide.

Resources