chengyafan001 发表于 2019-10-24 13:37:25

关于C1DockTabControl最大化及延时加载

这边还有两个问题
1.C1DockTabControl支持最大化吗?
2.C1DockControl.ShowPreview我看注释When user drag splitter, if ShowPreview equals true the C1TabControl / C1DockGroup only update after dragging completely,应该是在拖动完全结束时C1TabControl / C1DockGroup才渲染,但是实际貌似没有效果,只是出现了一条黑线,因为我的C1DockTabControl中装的是一个C1Chart ChartType="XYPlot",当点超过200的时候,调解C1DockTabControl的尺寸就会很卡,请帮忙看下这个如何处理?

Richard.Ma 发表于 2019-10-24 16:35:09

我感觉您这边需求可能更适合用Dashbord,在你的另外一个帖子下面,我留了联系方式,可以电话沟通一下你那边具体的问题,这样能更快帮你解决

你说的C1Chart 点数太多引起的性能问题,这个应我需要看到具体的项目才能验证

chengyafan001 发表于 2019-11-4 10:48:40

Richard.Ma 发表于 2019-10-24 16:35
我感觉您这边需求可能更适合用Dashbord,在你的另外一个帖子下面,我留了联系方式,可以电话沟通一下你那边 ...

这边之前与您沟通的几个问题,不知道解决的怎么样了?

Richard.Ma 发表于 2019-11-4 12:09:23

本帖最后由 Richard.Ma 于 2019-11-4 13:02 编辑

您好,验证了一下ShowPreview 确实没有起到什么作用,这个属性具体的用途,我和产品同事确认后给你答复,目前没有办法可以延迟加载

关于第三个Chart效率的问题,我建议您可以改用FlexChart,这个相对于C1CHart来说效率更高,性能更好。另外它的渲染方式可以设置为Direct2D,相对于默认的Xaml渲染方式,也会优化性能,

https://help.grapecity.com/compo ... art~RenderMode.html
这里实际进行了测试,共3个序列,每个序列1000个点,在Direct2D渲染模式下也很流畅

chengyafan001 发表于 2019-11-12 13:28:03

Richard.Ma 发表于 2019-11-4 12:09
您好,验证了一下ShowPreview 确实没有起到什么作用,这个属性具体的用途,我和产品同事确认后给你答复,目 ...

1.关于ShowPreview的问题,如果有结果就在这个帖子下面回复我吧
2.我换了FlexChart,设置为Direct2D确实效率很高,也很流畅,但是有点问题,我不知道这个Direct2D需要什么样的支持(显卡还是什么呢?),我的程序在本地运行没有问题,在公司的云桌面上运行的时候设置为Direct2D就会报错,错误如下:
      在 C1.Util.DX.Direct3D9.Direct3DEx.CreateDeviceEx(Int32 adapter, DeviceType deviceType, IntPtr hFocusWindow, Int32 behaviorFlags, PresentParameters[] presentationParametersRef, DisplayModeEx[] fullscreenDisplayModeRef)
   在 C1.Util.DX.Direct3D9.DeviceEx.Create(Direct3DEx direct3D, Int32 adapter, DeviceType deviceType, IntPtr controlHandle, CreateFlags createFlags, PresentParameters& presentParameters)
   在 #pqo.#wuo.#pp()
   在 #pqo.#wuo..ctor()
   在 #pqo.#muo.#qqo(Canvas #ISc)
   在 C1.WPF.Chart.RenderCanvas.ArrangeOverride(Size arrangeSize)
   在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect)
   在 System.Windows.UIElement.Arrange(Rect finalRect)
   在 System.Windows.Controls.Grid.ArrangeOverride(Size arrangeSize)
   在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect)

Richard.Ma 发表于 2019-11-12 18:15:12

DirectX这个对显卡的要求并不是很高,C1并没有给出具体的硬件需要,但是看问题的错误提示是Direct3D9方面的错误,我建议你可以安装一下directx9.0,看看能否解决问题

ShowPreview这个我到时回复在帖子中,因为开发同事不在国内,所以会慢一些

chengyafan001 发表于 2019-11-13 19:26:28

directx装的是directx11,应该是向下兼容的吧。这个DirectX是不是需要GPU呢?

Richard.Ma 发表于 2019-11-14 10:52:51

DirectX确实是需要GPU的,也因此渲染速度比较快,但是集显也是可以的。我理解你说的云桌面是不是类似于瘦客户端,这个可能和独立的pc硬件配置确实会有点差异,

对于系统和硬件的需求,我会和产品同事确认一下,方便的话也可以将你那边具体的配置信息发上来,


chengyafan001 发表于 2019-11-22 10:39:22

1.关于DirectX不能在云桌面上运行的问题,我自己在确认下吧,感谢您的解答
2.之前提过C1DockTabControl是否支持最大化的问题,记不清当时您是怎么回复的了,我这边的需求是当C1DockTabControl悬浮的时候可以最大化及还原,当然我通过拖拽边框也是可以实现,但是非常麻烦,既然通过拖拽边框可以实现,那是否有按键这样的功能呢?

Richard.Ma 发表于 2019-11-22 14:45:28

最大化以及还原的问题目前只能通过代码设置宽高来完成,验证没有办法在Tab的header中添加按钮,因此如果是要通过点击来放大缩小的话,只能是在tab页面里面再添加按钮,下面的代码是在变为Float悬浮模式时,用ItemDockModeChanged事件来判断,调整tab 的大小

      private void DockControl_ItemDockModeChanged(object sender, ItemDockModeChangedEventArgs e)
      {
            if (e.NewValue == DockMode.Floating)
            {
               
                e.TabControl.DockWidth = 1920;
                e.TabControl.DockHeight = 1080;
               
            }
      }
页: [1] 2
查看完整版本: 关于C1DockTabControl最大化及延时加载