This is a migrated thread and some comments may be shown as answers.

Touch-problems with RadScheduleView

4 Answers 126 Views
ScheduleView
This is a migrated thread and some comments may be shown as answers.
Manuel
Top achievements
Rank 1
Manuel asked on 03 Dec 2013, 02:05 PM
Hello,

i'm currently using the ScheduleView for showing appointments on a touchscreen. I changed the theme of the ScheduleView so i could open the EditAppointmentDialog with a single tap. The first problem is that the EditAppointmentDialog only shows when i click on a certain area of the appointment. It seems like the frame of the appointment where it reacts to the tap is slightly moved down. I attached a screen with the appointment - the black border illustrates where i need to tap to open the dialog.
This problem only occurs only on the touchscreen though, if i run the application on a normal screen and select the appointments with a mouse it shows no abnormal behavior.
When i try to select the rows of the calendar or press buttons the click is recognized at the right location, so the probelm only occurs when trying to open the EditAppointmentDialog. This makes me think it is a problem with the control and not an issue with drivers or the touchscreen.

I also defined a custom ViewDefinition for a work week, from Monday-Saturday, which leads to my second problem. When i try to pinch within this ViewDefinition i get an InvalidOperationException with the Message 'TimeRulerMonthViewGroupItem' TargetType does not match type of element 'TimeRulerGroupItem'. I found a similiar issue in this thread: http://www.telerik.com/community/forums/wpf/scheduleview/crash-while-pinch-to-zoom.aspx - but the workaround that was posted there didn't work for me.

The exception details:

System.InvalidOperationException was unhandled
  HResult=-2146233079
  Message='TimeRulerMonthViewGroupItem' TargetType does not match type of element 'TimeRulerGroupItem'.
  Source=PresentationFramework
  StackTrace:
       at System.Windows.StyleHelper.UpdateStyleCache(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle, Style& styleCache)
       at System.Windows.FrameworkElement.OnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
       at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
       at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
       at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
       at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
       at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
       at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
       at Telerik.Windows.Controls.ScheduleView.Extensions.SetStyleWithType(FrameworkElement element, Style style) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\Extensions.cs:line 33
       at Telerik.Windows.Controls.ScheduleViewBase.EnsureElementStyle(FrameworkElement element, Style newStyle) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 784
       at Telerik.Windows.Controls.ScheduleViewBase.ApplyTickItemStyle(FrameworkElement container, Object item) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 1291
       at Telerik.Windows.Controls.TimeRulerPanel.PrepareItem(TimeRulerItemBase item) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 127
       at Telerik.Windows.Controls.RecycleHelper`1.PrepareItem(Int32 index) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\RecycleHelper.cs:line 148
       at Telerik.Windows.Controls.RecycleHelper`1.PrepareItems(IValuesContainer indexTree, DateTime startDate, DateTime endDate) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\RecycleHelper.cs:line 85
       at Telerik.Windows.Controls.TimeRulerPanel.PrepareItems() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 344
       at Telerik.Windows.Controls.TimeRulerPanel.MeasureOverride(Size availableSize) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 215
       at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
       at System.Windows.UIElement.Measure(Size availableSize)
       at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
       at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
       at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
       at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
       at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
       at System.Windows.UIElement.Measure(Size availableSize)
       at System.Windows.ContextLayoutManager.UpdateLayout()
       at Telerik.Windows.Media.Imaging.ExportHelper.GetBitmapSource(FrameworkElement element, Double dpiX, Double dpiY) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 94
       at Telerik.Windows.Media.Imaging.ExportHelper.GetElementImage(FrameworkElement element) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 70
       at Telerik.Windows.Controls.TransitionControl.TransitionPresenter.PrepareAnimation() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\TransitionControl\TransitionPresenter.cs:line 301
       at Telerik.Windows.Controls.RadTransitionControl.PrepareAnimation() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\TransitionControl\RadTransitionControl.cs:line 184
       at Telerik.Windows.Controls.RadScheduleView.OnActiveViewDefinitionChanged(ViewDefinitionBase oldValue, ViewDefinitionBase newValue) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 281
       at Telerik.Windows.Controls.ScheduleViewBase.OnActiveViewDefinitionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 2698
       at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
       at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
       at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
       at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
       at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
       at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
       at Telerik.Windows.Controls.ScheduleViewBase.set_ActiveViewDefinition(ViewDefinitionBase value) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.cs:line 1441
       at Telerik.Windows.Controls.RadScheduleView.SetView(ViewDefinitionBase resultView, Object dateTime) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 198
       at Telerik.Windows.Controls.RadScheduleView.SelectView[T](Object dateTime) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 180
       at Telerik.Windows.Controls.ScheduleViewBase.OnSetMonthViewModeExecuted(Object sender, ExecutedRoutedEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Commands.cs:line 301
       at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
       at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
       at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
       at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
       at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
       at Telerik.Windows.Controls.ScheduleView.ScheduleViewTouchableElement.SemanticZoomOut(Point originalPoint) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Touch\ScheduleViewTouchableElement.cs:line 215
       at Telerik.Windows.Controls.ScheduleView.ScheduleViewTouchableElement.PinchFinished(PinchFinishedArguments args) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Touch\ScheduleViewTouchableElement.cs:line 86
       at Telerik.Windows.Input.Touch.GestureHandlers.PinchToZoomHandler.PinchFinished() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\GestureHandlers\PinchToZoomHandler.cs:line 77
       at Telerik.Windows.Input.Touch.TouchHandler.RegisterPinchFinish() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlers\TouchHandler.cs:line 356
       at Telerik.Windows.Input.Touch.TouchHandler.RegisterTouchMove(TouchHandlerArgs args) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlers\TouchHandler.cs:line 162
       at Telerik.Windows.Input.Touch.TouchHandlersController.RegisterTouchMove(Point point, TouchPoint[] touchPoints, Boolean& handled) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlersController.cs:line 108
       at Telerik.Windows.Input.Touch.TouchHandlersController.Owner_TouchMove(Object sender, TouchEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlersController_WPF.cs:line 217
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.TouchDevice.ReportMove()
       at System.Windows.Input.StylusLogic.PromoteMainMoveToTouch(StylusDevice stylusDevice, StagingAreaInputItem stagingItem)
       at System.Windows.Input.StylusLogic.PostProcessInput(Object sender, ProcessInputEventArgs e)
       at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(ProcessInputEventHandler postProcessInput, ProcessInputEventArgs processInputEventArgs)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.StylusLogic.InputManagerProcessInput(Object oInput)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
       at System.Windows.Threading.DispatcherOperation.InvokeImpl()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Windows.Threading.DispatcherOperation.Invoke()
       at System.Windows.Threading.Dispatcher.ProcessQueue()
       at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
       at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
       at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
       at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
       at System.Windows.Application.RunInternal(Window window)
       at System.Windows.Application.Run()
       at InformationTerminal.App.Main() in C:\Users\p50054\Projekte\InfoTerminalGUIPrototype\x64\Debug\App.g.cs:line 0
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:


Kind regards,
Manuel

4 Answers, 1 is accepted

Sort by
0
Konstantina
Telerik team
answered on 04 Dec 2013, 03:03 PM
Hello Manuel,

Thank you for contacting us.

You say that after the change of the behavior of the showing of the EditAppointmentDialog the clickable border of the Appointment has shifted, or this is the case by default?
In any case could you please open a support ticket and send us a sample project where this can be observed, as when I am testing, I am not able to reproduce the described behavior.
Also, I am sending you a short video of my attempt to reproduce the second issue you are describing - the thrown exception when pinching in the custom view.
Please, let us know with which assemblies you are testing and what is the model of your touch screen and the operating system you are running.

Looking forward to your reply.

Regards,
Konstantina
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Manuel
Top achievements
Rank 1
answered on 09 Dec 2013, 08:01 AM
Hello Konstantina,

thank you for your fast response.

Regarding the first issue, it only occurs when binding the SpecialSlotsSource to an ObservableCollection of Slot. I tried to make my schedule read only like it is shown in the examples. So i bound the SpeacialSlotsSource to an ObservableCollection to which i added a Slot with IsReadOnly. After this i could reproduce the behavior i described above.

I was able to reproduce the pinch bug by using a ViewModel and binding the AppointmentsSource to an ObservableCollection. It has nothing to do with any custom ViewDefinitions as i thought before, it also works fine when setting the AppointmentsSource within the code behind - it only occurs if i use data binding for the appointments.

I'm running it on Windows 7 and the Dell 22 Touch Monitor - S2240T and i'm currently using v.2013.3.1016.45 of the RadControls.

Kind regards,
Manuel
0
Accepted
Konstantina
Telerik team
answered on 10 Dec 2013, 12:36 PM
Hello Manuel,

I tried to reproduce the described issues in our online demos - I used the Special and ReadOnly slots example for the second issue, and the First look and Configurator for the first, however, with no success.
Anyway, the demos use the latest version Q3 2013 SP 1 - could you please give a try with it and if you still experience the problems, please open a support ticket and send us a sample project, where these issues can be reproduces. I am using the same monitor and Win 7 OS.

Looking forward to your reply.

Regards,
Konstantina
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Manuel
Top achievements
Rank 1
answered on 16 Dec 2013, 07:36 AM
Hello Konstantina,

updating to the lastest version was the solution.

All works fine now, thank you for your help.

Regards,
Manuel
Tags
ScheduleView
Asked by
Manuel
Top achievements
Rank 1
Answers by
Konstantina
Telerik team
Manuel
Top achievements
Rank 1
Share this question
or