Touch-problems with RadScheduleView

5 posts, 1 answers
  1. Manuel
    Manuel avatar
    3 posts
    Member since:
    Sep 2013

    Posted 03 Dec 2013 Link to this post

    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
  2. Konstantina
    Admin
    Konstantina avatar
    2332 posts

    Posted 04 Dec 2013 Link to this post

    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 >>
  3. UI for WPF is Visual Studio 2017 Ready
  4. Manuel
    Manuel avatar
    3 posts
    Member since:
    Sep 2013

    Posted 09 Dec 2013 Link to this post

    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
  5. Answer
    Konstantina
    Admin
    Konstantina avatar
    2332 posts

    Posted 10 Dec 2013 Link to this post

    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 >>
  6. Manuel
    Manuel avatar
    3 posts
    Member since:
    Sep 2013

    Posted 16 Dec 2013 Link to this post

    Hello Konstantina,

    updating to the lastest version was the solution.

    All works fine now, thank you for your help.

    Regards,
    Manuel
Back to Top
UI for WPF is Visual Studio 2017 Ready