找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-24 10:33:01
11#
只是拖动到另一个位置的话是可以的,但是还有一种情况就是和另一个Docking合并,这样这个dockingtabcontrol就不是原来的了,没有办法再做双击

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
chengyafan001
注册会员   /  发表于:2020-4-24 11:20:07
12#
我测试过,dockingtabcontrol的内存地址都没有变,怎么能不是原来的呢?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-24 12:26:50
13#
抱歉,有点没有说清楚,这dockingtabcontrol确实没有消失,但是已经隐藏了
而屏幕上显示的已经是其他的DockingTab,我会在帮你看看有没有其他的办法
回复 使用道具 举报
chengyafan001
注册会员   /  发表于:2020-4-24 18:41:40
14#
那还麻烦您尽快看一下,我这边还是比较着急的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-26 09:29:52
15#
本帖最后由 Richard.Ma 于 2020-4-26 10:28 编辑

抱歉还未能找到合适的解决办法,我尝试了给最外层的C1DockControl直接加MouseDoubleClick,这样可以保证在任何情况下都可以触发,但是无法区分是哪一各DockTabControl被点击了。我今天会和研发同事再沟通一下看看有没有其他的办法
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-28 09:49:18
16#
如之前所说,拖动C1DockTabControl时,会创建其新实例,并且该实例未将你的处理方法注册到MouseDoubleClick事件。
可以在xaml中使用EventSetter来注册事件处理程序,如下所示:
你可以测试一下

  1. <Window.Resources>
  2.       <Style x:Key="DockTabControlDoubleClick" TargetType="c1:C1DockTabControl">
  3.            <EventSetter Event="MouseDoubleClick" Handler="dockTabControl1_MouseDoubleClick"></EventSetter>
  4.       </Style>
  5. </Window.Resources>

  6. <c1:C1DockTabControl x:Name="dockTabControl1" Style="{StaticResource DockTabControlDoubleClick}">
  7.      <c1:C1DockTabItem Header="Tab 1">
  8.            <TextBlock FontSize="30" Margin="10" Text="70% Width"></TextBlock>
  9.      </c1:C1DockTabItem>
  10. </c1:C1DockTabControl>
复制代码

评分

参与人数 1满意度 +5 收起 理由
chengyafan001 + 5 很给力!

查看全部评分

回复 使用道具 举报
chengyafan001
注册会员   /  发表于:2020-4-28 13:53:12
17#
OK,完美解决了我的问题,并且还对我之前的优化了,不需要添加的时候一个个注册事件了,非常感谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-28 17:53:04
18#
不客气
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部