Hi guys,
I'm working with RadPageView and I want to catch MouseHover event of RadPageView.
In details, I want to focus and expand a PageViewPage when the mouse hover on the header.
For example, I have 1 RadPageView named "Page View", and it have 2 PageViewPage: "A" and "B". I want to expand the content of page "A" and page "B" when mouse is moving over them.
Can u give me some advise?
Thanks,
(Sorry for my bad English)
I'm working with RadPageView and I want to catch MouseHover event of RadPageView.
In details, I want to focus and expand a PageViewPage when the mouse hover on the header.
For example, I have 1 RadPageView named "Page View", and it have 2 PageViewPage: "A" and "B". I want to expand the content of page "A" and page "B" when mouse is moving over them.
Can u give me some advise?
Thanks,
(Sorry for my bad English)
5 Answers, 1 is accepted
0
Hello Nestodre,
Thank you for writing.
Can you please specify which ViewMode of RadPageView are you using - outlook, explorer bar, etc?
I am looking forward to your reply.
Regards,
Stefan
Telerik
Thank you for writing.
Can you please specify which ViewMode of RadPageView are you using - outlook, explorer bar, etc?
I am looking forward to your reply.
Regards,
Stefan
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0
I have just noticed the other threads of yours, where you mention you use the ExplorerBar mode. Here is how to achieve this in it:
I hope that you find this information useful. Should you have any other questions, do not hesitate to contact us.
Regards,
Stefan
Telerik
protected override void OnLoad(EventArgs e){ base.OnLoad(e); AddPageView(); radPageView1.ViewMode = PageViewMode.ExplorerBar; RadPageViewExplorerBarElement explorerBarElement = radPageView1.ViewElement as RadPageViewExplorerBarElement; foreach (var item in explorerBarElement.Items) { item.MouseHover += item_MouseHover; }}void item_MouseHover(object sender, EventArgs e){ RadPageViewExplorerBarItem item = (RadPageViewExplorerBarItem)sender; item.IsExpanded = !item.IsExpanded;}I hope that you find this information useful. Should you have any other questions, do not hesitate to contact us.
Regards,
Stefan
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0
nestodre
Top achievements
Rank 1
answered on 13 Mar 2015, 01:57 AM
Hi Stefan,
Thank for your support.
I have 2 more questions :D
- When I expand 1 item, I want to collapse all of the others. I tried to use "foreach" for all items in explorerBarElement.Items but it didn't work. I found that this 'item' is belong to RadPageViewItem, different from RadPageViewExplorerBarItem, so the property IsExpand is not available. How can I check which one is expanded?
I have tried this and it worked, but I think this way is not optimized:
- And the other question is about the animation of expanding page, I used your advise and found that after I hover 1 element, it takes about 0.5 sec to expand it, it's not smooth. So can I define some animations for this action?
Thank you so much for your help :-)
Thank for your support.
I have 2 more questions :D
- When I expand 1 item, I want to collapse all of the others. I tried to use "foreach" for all items in explorerBarElement.Items but it didn't work. I found that this 'item' is belong to RadPageViewItem, different from RadPageViewExplorerBarItem, so the property IsExpand is not available. How can I check which one is expanded?
I have tried this and it worked, but I think this way is not optimized:
// save the item that's exploredrivate RadPageViewExplorerBarItem exploredItem;void item_MouseHover(object sender, EventArgs e) { if(this.exploredItem != null) this.exploredItem.IsExpanded = false; RadPageViewExplorerBarItem item = (RadPageViewExplorerBarItem)sender; item.IsExpanded = true; this.exploredItem = item; }- And the other question is about the animation of expanding page, I used your advise and found that after I hover 1 element, it takes about 0.5 sec to expand it, it's not smooth. So can I define some animations for this action?
Thank you so much for your help :-)
0
Hi Quan,
1. You can just cast the RadPageViewItem to RadPageViewExplorerBarItem. When you are in explorer bar view, this cast will pass and you will have access to the IsExpanded property:
2. In regards to the animation, RadPageView does not feature expand animation, however, you could use a timer and the PageLength property to achieve such. Here is an example:
I hope that you find this information useful.
Regards,
Stefan
Telerik
1. You can just cast the RadPageViewItem to RadPageViewExplorerBarItem. When you are in explorer bar view, this cast will pass and you will have access to the IsExpanded property:
void item_MouseHover(object sender, EventArgs e){ RadPageViewExplorerBarItem item = (RadPageViewExplorerBarItem)sender; RadPageViewExplorerBarElement explorerBarElement = radPageView1.ViewElement as RadPageViewExplorerBarElement; foreach (RadPageViewExplorerBarItem i in explorerBarElement.Items) { i.IsExpanded = false; } item.IsExpanded = true;}2. In regards to the animation, RadPageView does not feature expand animation, however, you could use a timer and the PageLength property to achieve such. Here is an example:
protected override void OnLoad(EventArgs e){ base.OnLoad(e); AddPageView(); radPageView1.ViewMode = PageViewMode.ExplorerBar; RadPageViewExplorerBarElement explorerBarElement = radPageView1.ViewElement as RadPageViewExplorerBarElement; foreach (RadPageViewExplorerBarItem item in explorerBarElement.Items) { item.MouseHover += item_MouseHover; item.AssociatedContentAreaElement.RadPropertyChanging += AssociatedContentAreaElement_RadPropertyChanging; } timer = new System.Windows.Forms.Timer(); timer.Interval =30; timer.Tick += timer_Tick; radPageView1.PageExpanded += radPageView1_PageExpanded;}void timer_Tick(object sender, EventArgs e){ currentPage.PageLength += 20; if (currentPage.PageLength >= 300) { timer.Stop(); }}System.Windows.Forms.Timer timer;RadPageViewPage currentPage;void radPageView1_PageExpanded(object sender, RadPageViewEventArgs e){ timer.Stop(); currentPage = e.Page; currentPage.PageLength = 0; timer.Start();}void AssociatedContentAreaElement_RadPropertyChanging(object sender, RadPropertyChangingEventArgs args){ if (args.Property.Name == "Bounds") { //suspend layout when animating args.Cancel = timer.Enabled; }}void item_MouseHover(object sender, EventArgs e){ RadPageViewExplorerBarItem item = (RadPageViewExplorerBarItem)sender; RadPageViewExplorerBarElement explorerBarElement = radPageView1.ViewElement as RadPageViewExplorerBarElement; foreach (RadPageViewExplorerBarItem i in explorerBarElement.Items) { i.IsExpanded = false; } item.IsExpanded = true;}I hope that you find this information useful.
Regards,
Stefan
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0
nestodre
Top achievements
Rank 1
answered on 14 Mar 2015, 03:07 AM
Thank for your reply.
It's worked! :D
Have a nice weekend Stefan!
It's worked! :D
Have a nice weekend Stefan!
