Hello,
I have two problems with RadWindows when opened as Dialog:
1.
When I do not click but do a fast doubleclick on a element (button,...) to open a dialog from a window, then the dialog vanishes into background.
The single click opens the dialog and the second click reactivates the window where was clicked, not the opening new dialog.
Our dialog have an animation where the window fades slowly in. In this animation time (the dialogs are small and get bigger) you are able to click in the "old" window, which opens the new dialog and this reactivates them in foreground.
2.
I have a dialog opened with a
telerikNavigation:RadWindow.ResponseButton="Cancel" on a cancel button.
Before I close the dialog I show confirmation window for saving/canceling on close. When the confirmation box is open, I can press the "ESC" accelerator and the dialog closes, altthough the confirmation box is open.
What can I do to avoid my problems?
Regards,
TL
5 Answers, 1 is accepted
Straight forward to the questions:
- We are aware of this issue with the RadWindow. We are working on it and the fix will be included in one of our future releases. You can vote for it and track its progress in our Public Issue Tracking System with ID = 2923.
- Could you please send us a sample running project that reproduces the problem? It would be very helpful to investigate the issue. I am glad to assist you further.
Please do not hesitate to contact us if you require any further information.
George
the Telerik team
Hello,
problem 2 I cannot reproduce anymore. Perhaps I made something wrong before.
Thanks for your help,
Thomas
We're experiencing issue #1 (public issue 2923) as well. We have a main editing RadWindow that calls RadWindow.Confirm() when the user clicks the Save button. This works fine if the user single-clicks Save. But if the user double-clicks Save, the confirm popup ends up behind the main editing window (since the second click moves the main window to the foreground). The editing window is modal, so the user can't click on the confirm popup, and they can't save their changes.
Could you give us an update on when this issue will be fixed? Or is there a workaround we can use for now - e.g. programmatically moving the confirm window to the top?
Thanks for your help,
Richard
This issue happens on some rare circumstances. Sometimes there is a delay between clicking the button and opening the RadWindow, which means the application runs slowly and you are able to click on the UI before it gets unclickable (because of the delay). RadWindow has some animations that slow down the application, especially on slower machines. You could try to handle Loaded event in the window and call BringToFront() when the RadWindow gets loaded.
I hope this helps! If it doesn't work I cannot do anything at this moment. The issue is logged, we are aware of this problem and we will fix it in one of our future releases.
George
the Telerik team
Thanks for the suggested workaround... I wasn't aware of the BringToFront() method.
The problem has been happening consistently for us whenever someone double-clicks the button that triggers the confirm popup. So it's not that rare for us. We've reproduced it on a few different machines.
I tried calling BringToFront from the Loaded event and it didn't work... but I found that if I added a small timer delay, it worked OK.
Here is the code I used:
private
void
ConfirmUsingRadWindow(DialogParameters parameters)
{
var confirm =
new
RadConfirm();
confirm.Content = parameters.Content;
var window =
new
RadWindow();
window.Content = confirm;
window.ResizeMode = ResizeMode.NoResize;
window.CanMove =
true
;
window.Style = parameters.WindowStyle;
window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
//window.IsActiveWindow = true;
confirm.Configure(window, parameters);
window.Loaded += (s, ea) => BringWindowToFrontAfterDelay(window);
window.Closed += parameters.Closed;
window.ShowDialog();
}
private
void
BringWindowToFrontAfterDelay(RadWindow window)
{
var timer =
new
DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(200);
timer.Tick += (s, ea) => BringWindowToFront(window, timer);
timer.Start();
}
private
void
BringWindowToFront(RadWindow window, DispatcherTimer timer)
{
if
( window.IsOpen )
window.BringToFront();
timer.Stop();
}
Thanks for your help,
Richard