Print Page | Close Window

TaskDialog built-in Question icon is missing!

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Suite Pro
Forum Description: Topics Related to Codejock Suite Pro
URL: http://forum.codejock.com/forum_posts.asp?TID=17275
Printed Date: 21 November 2024 at 7:30pm
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: TaskDialog built-in Question icon is missing!
Posted By: gibra
Subject: TaskDialog built-in Question icon is missing!
Date Posted: 18 September 2010 at 1:04pm
TaskDialog is a great control.
Normally, TaskDialog is used to ask something to the user. 
Then I not understand: why question icon is missing?
 
If I want disaply a question icon, i'm forced to load icons from file, so I'm forced to distribute in my application the related image file.
 
It's possible to add question icon to a built-in icons set?
Or, it's  possible load icon from IconManager, instead to load from file?
 
Thank.


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8



Replies:
Posted By: Aaron
Date Posted: 18 September 2010 at 3:35pm
Hi,
 
You could use Markup to accomplish this Wink
 
The images in TaskDialog are images of an ImageManager.
The necessary code is also an image from ImageManager (just copy / paste code into textbox and saved it as image, just in case you are wondering the many different colors of the characters Tongue)
 
 
 
Just add your HELP icon (with same ID as Source=' ') to an ImageManager and
 
add following code:
 
XtremeSuiteControls.Icons.AddIcons Me.ImageManager1.Icons
    
    With TaskDialog1
        .EnableMarkup = True
        .ContentText = "<TextBlock><Image Source='1'/></TextBlock>"
        .ShowDialog
    End With
 


-------------
Product: Xtreme SuitePro (ActiveX) version 15.0.2
Platform: Windows XP (32bit) - SP 2
Language: Visual Basic 6.0

Zero replies is not an option....


Posted By: jpbro
Date Posted: 18 September 2010 at 5:02pm
Microsoft changed their UI guidelines, and no longer recommend the use of the question mark icon (that's why it is missing). See:

http://msdn.microsoft.com/en-us/library/aa511277.aspx#questiongl - http://msdn.microsoft.com/en-us/library/aa511277.aspx#questiongl

Excerpt:

Quote

Question mark icons

  • Use the question mark icon only for Help entry points. For more information, see the http://msdn.microsoft.com/en-us/library/aa511449.aspx#guidelines - Help entry point guidelines.
  • Don't use the question mark icon to ask questions. Again, use the question mark icon only for Help entry points. There is no need to ask questions using the question mark icon anyway—it's sufficient to present a main instruction as a question.
  • Don't routinely replace question mark icons with warning icons. Replace a question mark icon with a warning icon only if the question has significant consequences. Otherwise, use no icon.




-------------
Product: Xtreme SuitePro (ActiveX) version 16.2.6
Platform: Windows XP - SP3

Language: Visual Basic 6.0 SP6



Posted By: gibra
Date Posted: 18 September 2010 at 5:47pm
Thank for your help, Aaron.
 
I have try your suggestion, unfortunately doesn't work correctly if I use EnableHyperlinks.
 
Example:
1. Open the Vista TaskDialog sample VB6.0 project of Codejock SuitePro (13.4.0)
2. Open frmMain, on General tab note that the Content textbox (editContent) contains this value:
"A TaskDialog presents <A HREF="executablestring 1">Hyperlink Text</A> information in a clear and consistent way."
 
The dialog display as below:

 
Now, in this project :
3. add the component CommandBars to the project
4. add ImageManager1 control to frmMain
5. add a question icon (32x32) to ImageManager1, with ID=100
 
If I use a simple plain text, as this:
taskDialog.ContentText = "<TextBlock><Image Source='100'/>This is a sample text</TextBlock>"
the result is good:
 
 
Now, I try to set the ContentText property to add custom icon to existing ContentText value:
taskDialog.ContentText = "<TextBlock><Image Source='100'/></TextBlock>" & editContent.text
 
the wrong result is show below:
 
 
Then, I have try to insert the editContent value into TextBlock:
taskDialog.ContentText = "<TextBlock><Image Source='100'/>" & editContent.text & "</TextBlock>"
 
again, the wrong result is:
 
What's wrong?
How I can to solve this problem?
 
Thank.
 


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8


Posted By: gibra
Date Posted: 18 September 2010 at 5:53pm
Originally posted by jpbro jpbro wrote:

Microsoft changed their UI guidelines, and no longer recommend the use of the question mark icon (that's why it is missing). See:

http://msdn.microsoft.com/en-us/library/aa511277.aspx#questiongl - http://msdn.microsoft.com/en-us/library/aa511277.aspx#questiongl
 
 
Then, my problem isn't a problem. LOL
 
Thank for this information.


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8


Posted By: jpbro
Date Posted: 18 September 2010 at 9:19pm
When using Markup, you need to use the XAML <Hyperlink> tag instead of the HTML <A> tag.

There are some issues though. When a user clicks a XAML Hyperlink, the TaskDialog HyperlinkClicked event will be raised, but the URL property will be empty. This means that you can apparently have only 1 hyperlink per TaskDialog message, because there is no way to differentiate between them (or at least, I haven't figured out how to).

Only CodeJock can solve this (by supporting the NavigateUri attribute of the Hyperlink tag, which they don't at this point, and passing that to the URL property of the HyperlinkClicked event), or by adding a MarkupContext object with AddHandler methods to the TaskDialog control (like the MarkupLabel and ReportControl have - this would allow us to perform our own link click handling).

However, if you only need 1 hyperlink per message, then just wrap it in <Hyperlink></Hyperlink> tags and perform whatever action you require in the HyperlinkClicked event.



-------------
Product: Xtreme SuitePro (ActiveX) version 16.2.6
Platform: Windows XP - SP3

Language: Visual Basic 6.0 SP6



Posted By: gibra
Date Posted: 19 September 2010 at 4:12am
Originally posted by jpbro jpbro wrote:

When using Markup, you need to use the XAML <Hyperlink> tag instead of the HTML <A> tag.
 
This work good.
 
To apply your suggestion in VistaTaskDialog sample here the code
 
  ' replace <A> tag wiht <Hyperlink> tag in editContent.text control:
  Dim newContentText As String
  newContentText = Replace(editContent.text, "<A HREF", "<Hyperlink Click")
  newContentText = Replace(newContentText, "</A>", "</Hyperlink>")
  taskDialog.ContentText = "<TextBlock><Image Source='100'/>" & newContentText & "</TextBlock>"

 
The result isn't perfect (icon position is different from built-in icons of TaskDialog control), however it's a good way to use a custom icon from ImageManager, not from disk.
 
As you say, will hope that Codejock add support for NavigateUri attribute to allows us fo manage URL parameter of HyperlinkClicked event.
So i'm not foced to use a MarkupContext object.
 
Thank! Smile


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8


Posted By: Aaron
Date Posted: 19 September 2010 at 4:40am
Hi,
 
Use StackPanel to position Text & Icon seperately, something like this:
 
.ContentText = "<StackPanel Orientation='Horizontal'><Image Source='100'/><TextBlock>A TaskDialog presents....</TextBlock></StackPanel>"
 
Both Icon and Text will be aligned at the top.
 

       


-------------
Product: Xtreme SuitePro (ActiveX) version 15.0.2
Platform: Windows XP (32bit) - SP 2
Language: Visual Basic 6.0

Zero replies is not an option....


Posted By: gibra
Date Posted: 20 September 2010 at 12:14pm
Originally posted by Aaron Aaron wrote:

Both Icon and Text will be aligned at the top.      
 
Thank for reply.
Another tricks to add into my code. Smile
 
 


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8


Posted By: SuperMario
Date Posted: 20 September 2010 at 2:15pm
On a side note, we added this for 13.4.1
 




Posted By: gibra
Date Posted: 22 September 2010 at 7:43am
Originally posted by SuperMario SuperMario wrote:

On a side note, we added this for 13.4.1
 


 
Great!!! Clap
You understand my point-of-view. Smile
 
Now, I don't know it's possible, but should be also good if the 'custom icon' can be loaded icon from ImageManager, not only from file (as currently).  Wink
In this way:
1. I'm not forced to deploy additional icons files to use as custom icon.
2. the custom icon appear in correct position, on the left of Main text.
 
Actually, the icon loaded with Image Source of XAML <Hyperlink> tag or HTML <A> tag :  <Image Source='100'/>
appear always on the left of Content text, not to the left of Main text when use built-in icons.
 
Thank again.
Smile
 


-------------
gibra
CJ SuiteControl v: 13.x to 19.x
Windows 10 64bit
VS2019 - VB6.0 SP6
<a href="http://nuke.vbcorner.net/Home/tabid/36/language/en-US/Default.aspx" rel="nofollow">VS/VB 6.0 Installer v6.8



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net