How to change tooltip duration? My code like this:
<
DataTemplate
x:Key
=
"ToolTipTemplate"
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
/>
<
RowDefinition
/>
<
RowDefinition
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
StackPanel
Grid.Row
=
"0"
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"Subject: "
/>
<
TextBlock
Text
=
"{Binding Subject}"
TextWrapping
=
"Wrap"
FontWeight
=
"Bold"
/>
</
StackPanel
>
<
StackPanel
Grid.Row
=
"1"
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"Body: "
/>
<
TextBlock
Text
=
"{Binding Body}"
TextWrapping
=
"Wrap"
/>
</
StackPanel
>
<
StackPanel
Grid.Row
=
"2"
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"Location: "
/>
<
TextBlock
Text
=
"{Binding Appointment.Resources[0].ResourceName}"
/>
</
StackPanel
>
<
StackPanel
Grid.Row
=
"3"
Margin
=
"0 5 0 0"
>
<
StackPanel
Orientation
=
"Horizontal"
Margin
=
"0 0 0 0"
>
<
TextBlock
Text
=
"{Binding Start, StringFormat='hh:mm tt'}"
TextWrapping
=
"Wrap"
FontSize
=
"10"
/>
<
TextBlock
Text
=
" - "
FontSize
=
"10"
/>
<
TextBlock
Text
=
"{Binding End, StringFormat='hh:mm tt'}"
TextWrapping
=
"Wrap"
FontSize
=
"10"
/>
</
StackPanel
>
<
TextBlock
Text
=
"{Binding Start, StringFormat='dddd dd MMM yyyy'}"
Margin
=
"0 3"
FontSize
=
"10"
/>
</
StackPanel
>
</
Grid
>
</
DataTemplate
>
.....
<
telerik:RadScheduleView
ToolTipTemplate
=
"{StaticResource ToolTipTemplate}"
... >
...
</
telerik:RadScheduleView
>
6 Answers, 1 is accepted
In order to change the ToolTip duration you can use the approach explained in this forum post.
You can give it a try and let us know if you have any further questions.
Regards,
Kalin
Telerik
Check out the new Telerik Platform - the only modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps. Register for the free online keynote and webinar to learn more about the Platform on Wednesday, February 12, 2014 at 11:00 a.m. ET (8:00 a.m. PT).
Ideally, I would like the tool tip to stay open as long as the cursor is over the MapPolygon. This is similar to this question (http://www.telerik.com/forums/tooltip-open-automatically-and-click-event) but that applies to a Pushpin, not a MapPolygon. The MapPolygon's ToolTip does not have an IsOpen property.
I have a tooltip that has about 20 lines of information and this is essentially impossible to read in the time the tooltip is open.
Andrew
I am afraid you cannot change the duration of the MapPolygon's tooltip. The MapPolygon is just a wrapper that describes the shape (a Polygon element in this case) which will be rendered on the map. The created visual element is not bound to the ToolTipService which leads to this limitation.
To achieve your requirement you can use several approaches:
- Use data binding and set the tooltip and tooltip duration on the elements in the InformationLayer's ItemTemplate through the ToolTipService.
- Use FrameworkElements directly in the Items collection of the layer instead of MapShapes
- Consider using the new VisualizationLayer and the map shape data objects. Basically, you can subscribe for the MapShapeVisualizationCreated event of the VisualizationLayer and inside its handler set a tooltip and its duration on the shape's visual element through the ToolTipService. Here is an example:
private
void
visualizationLayer_MapShapeVisualizationCreated(
object
sender, MapShapeOperationEventArgs e)
{
var toolTip = e.Data.Location;
ToolTipService.SetToolTip(e.Visualization, toolTip);
ToolTipService.SetShowDuration(e.Visualization, 30000);
}
Also, note that the map control provides two rendering engine packs - the old one consists of the the InformationLayer, VirtualizationLayer and DynamicaLayer. The new one is implemented through the VisualizationLayer which brings better performance, additional features and allows reading of shapes from different sources (KML, ESRI, and SQL Geospatial).
I hope this information helps.
Regards,
Martin
Telerik
See What's Next in App Development. Register for TelerikNEXT.
Using binding, I can set the ToolTip but not the Duration. Both of the examples below do not work and I can't seem to find an element or attribute that would allow setting the duration. Duration isn't an attribute of the ToolTip element either.
<ToolTipService.ToolTip>
<ToolTip Content="{Binding PropertiesAsText}"/>
<Duration>30000</Duration>
</ToolTipService.ToolTip>
<ToolTipService.ToolTip>
<ToolTip Content="{Binding PropertiesAsText}"/>
<ShowDuration>30000</ShowDuration>
</ToolTipService.ToolTip>
I'm not sure how using FrameworkElements would help since the layer is a collection of polygons (hence the use of MapPolygons). Would I need to create my own class that inherits from FrameworkElements and write the drawing methods from scratch?
I am using the VisualizationLayer and MapPolygon objects but the Visualization layer doesn't seem to have a MapShapeVisualizationCreated event so the example you gave is never fired. Both <telerik:VirtualizationLayer.MapShapeVisualizationCreated> and <telerik:VirtualizationLayer MapShapeVisualizationCreated="visualizationLayer_MapShapeVisualizationCreated"/> will not compile.
How can I tell if I'm using the "new" rendering engine pack or the "old' one? We're using WPF_2014_1.
If I make this change, can I control the ToolTip and make it stay open (open on mouse enter and close on mouse exit)?
One advantage I see is that creating the MapPolygons wasn't possible in the background process with the VirtualizationLayer (another few days wasted trying to get this to work) so I could eliminate the hacks I had to put into place to get this to work. I'll look into making this switch but if you could help with the ToolTip problem that would be great.
I attached a sample project demonstrating the map's VisualizationLayer populated with several polygon Framework and MapPolygonData elements. Each element have a tooltip that is displayed for some time - 1800000 milliseconds (30 minutes) in the attached example. This will ensure that the tooltip will be opened enough time so that it looks like it is always opened. About showing/hiding on mouse enter/leave, this behavior is built-int in the WPF's tooltip and you won't need to implement logic for this.
In addition I added a custom implementation that keeps open the tooltip even if the ShowDuration time is up. This logic is based on the approach used in the forum that you referenced to several replies back.
Please take a look at the project and let me know if it helps. Also, I would ask you to open a new forum (or a support ticket) in the corresponding section (RadMap in your case) if you have any questions that are not related to the current topic about the RadScheduleView.
Regards,
Martin
Telerik
See What's Next in App Development. Register for TelerikNEXT.