找回密码
 立即注册

QQ登录

只需一步,快速开始

还没想好

论坛元老

5

主题

38

帖子

1万

积分

论坛元老

积分
14301

活字格认证

还没想好
论坛元老   /  发表于:2015-4-28 15:53  /   查看:11199  /  回复:16
当我使用C1DockTabControl的时候出现了一个奇怪的现象。在里面加了3个tabItem, 并且一开始的时候整个 C1DockTabControl是hide,在某个条件出现的时候会变为float。在这个时候有2个问题:

1. 怎么使tab出现在header的位置而不是在底部。
2. 怎么设置红框部分的颜色

本帖子中包含更多资源

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

x

16 个回复

正序浏览
Alice
社区贡献组   /  发表于:2015-5-12 14:42:00
17#
回复 16楼还没想好的帖子

感谢你的反馈。
也谢谢@Knight的热心回复。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢        
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-5-12 13:59:00
16#
回复 15楼KNight的帖子

谢谢 果然是这样  终于解决了这么多天 厉害
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-5-12 11:56:00
15#
回复 14楼还没想好的帖子

是从C1DockTabControl控件中找到C1LinePanel子控件,然后设置该子控件的背景色;
你给的Demo里,如果在设置floating之后,你的c1DockTabControl控件就不在c1DockControl控件内了,当然找不到了;抱歉之前最后给的两句代码产生误解了,应该改为:
  1. List<C1LinePanel> a = GetChildObjects<C1LinePanel>(c1DockTabControl, typeof(C1LinePanel));
  2. a[0].Background = new SolidColorBrush(Colors.Blue);
复制代码

评分

参与人数 1金币 +100 满意度 +5 收起 理由
还没想好 + 100 + 5 帮助客户解决技术难题。奖励金币。

查看全部评分

回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-5-12 11:16:00
14#
版主 &amp; KNight 我试过这个方法了   但是 在Floating状态下这样设置是不起作用的 我在设置Floating后 调用
List<C1DockTabControl> a = GetChildObjects<C1DockTabControl>(c1DockControl, typeof(C1DockTabControl)); 所得到的所有窗体没有一个的dockmode是floating的
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-5-12 10:01:00
13#
谢谢楼上2位 我试一下这个方法  回头更新结果
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-11 18:27:00
12#
回复 10楼还没想好的帖子

感谢@KNight 提供的方法。
@还没想好 请问你使用11楼的方式能解决你的问题么?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-5-11 09:20:00
11#
回复 10楼还没想好的帖子
  1. public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement
  2. {
  3.         DependencyObject child = null;
  4.         List<T> childList = new List<T>();

  5.         for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
  6.         {
  7.                 child = VisualTreeHelper.GetChild(obj, i);

  8.                 if (child is T &amp;&amp; (((T)child).GetType() == typename))
  9.                 {
  10.                         childList.Add((T)child);
  11.                 }
  12.                 childList.AddRange(GetChildObjects<T>(child, typename));
  13.         }
  14.         return childList;
  15. }
复制代码
这是在WPF中查找子控件的方法,然后查找C1DockControl控件里的C1LinePanel子控件,并将其背景设置成你想要的颜色即可;

  1. List<C1LinePanel> a = GetChildObjects<C1LinePanel>(c1DockControl, typeof(C1LinePanel));
  2. a[0].Background = new SolidColorBrush(Colors.Blue);
复制代码

评分

参与人数 1金币 +500 收起 理由
Alice + 500 提供代码帮助其他客户解决问题,奖励500金币。

查看全部评分

回复 使用道具 举报
还没想好
论坛元老   /  发表于:2015-5-8 19:25:00
10#
不好意思  打不开吗  我还是把soluti]on直接打包传上来算了

很简单的一个验证  只要运行起来点Floating就可以看到我描述的情况

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-7 18:15:00
9#
回复 5楼还没想好的帖子

很抱歉回复晚了。
wrf文件无法打开。
为了帮助你解决问题,请提供一个可以重现该问题的Demo。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部