找回密码
 立即注册

QQ登录

只需一步,快速开始

hyx_2014
银牌会员   /  发表于:2014-4-3 09:17:00
11#
回复 10楼iceman的帖子

你好!我已经尝试在Demo中修改Editor的  BorderBrush 、BorderThickness 属性,但是仍然无法隐藏边框?能否给予一些帮助,谢谢!
回复 使用道具 举报
hyx_2014
银牌会员   /  发表于:2014-4-3 17:38:00
12#
你好,请问能否通过代码来控制Editor的边框呢。
例如:当鼠标点击某个属性时,编辑器获取焦点再显示出来。没有焦点的时候不显示编辑器,只把value显示处理?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-4 11:13:00
13#
回复 12楼hyx_2014的帖子

你好,

我通过 PropertyBoxAdded 事件定制了 Editor 的边框,请你参考下,看能否解决问题:


另外我没能理解你的功能需求,能否在详细描述下。
“当鼠标点击某个属性时,编辑器获取焦点再显示出来。没有焦点的时候不显示编辑器,只把value显示处理? ”

谢谢

本帖子中包含更多资源

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

x
回复 使用道具 举报
hyx_2014
银牌会员   /  发表于:2014-4-4 14:32:00
14#
回复 13楼iceman的帖子


你好,谢谢你提供的代码,但是仍然没有把textbox的边框去掉。详细的说明请参照我附上的图片。
谢谢!

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-4 17:43:00
15#
回复 14楼hyx_2014的帖子

可以设置边框为白色:

  1.                 //每个格子添加一个Border进去
  2.                 for (int i = 0; i < rows; i++)
  3.                 {
  4.                     for (int j = 0; j < columns; j++)
  5.                     {
  6.                         var border = new Border()
  7.                         {
  8.                             BorderBrush = new SolidColorBrush(Colors.White),
  9.                             BorderThickness = new Thickness(1),
  10.                            
  11.                         };
  12.                         grid.ShowGridLines = false;
  13.                         Grid.SetRow(border, i);
  14.                         Grid.SetColumn(border, j);

  15.                         grid.Children.Add(border);
  16.                     }
  17.                 }
复制代码
回复 使用道具 举报
hyx_2014
银牌会员   /  发表于:2014-4-8 09:26:00
16#
回复 15楼iceman的帖子

不好意思,按照您所提供的代码,无法隐藏边框。我尝试在PropertyBoxesLoaded事件中处理边框,可以隐藏掉边框。

  1. void CustomerPg_PropertyBoxesLoaded(object sender, EventArgs e)
  2.         {
  3.             for (int i = 0; i < CustomerPg.PropertyBoxes.Count; i++)
  4.             {
  5.                 (CustomerPg.PropertyBoxes[i].CurrentEditor as Control).BorderThickness = new Thickness(0.0d);
  6.             }
  7.         }
复制代码


现在想请问一下,有没有类似的:当某个属性获得焦点时,控制对应的编辑器初始化处理的属性或者方法呢?

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-8 17:07:00
17#
回复 16楼hyx_2014的帖子

请测试这种方法能否满足你的需求:

  1.         void c1pg_PropertyBoxesLoaded(object sender, EventArgs e)
  2.         {
  3.             for (int i = 0; i < c1pg.PropertyBoxes.Count; i++)
  4.             {

  5.                 (c1pg.PropertyBoxes[i].CurrentEditor as Control).BorderThickness = new Thickness(0.0d);

  6.                 if (i==6)
  7.                 {
  8.                     BrushEditor be = c1pg.PropertyBoxes[i].CurrentEditor as BrushEditor;
  9.                     be.SelectedColor = Color.FromArgb(255, 255, 255, 255);
  10.                     be.LostFocus += be_LostFocus;
  11.                 }

  12.             }
  13.         }

  14.         void be_LostFocus(object sender, RoutedEventArgs e)
  15.         {
  16.             BrushEditor be = sender as BrushEditor;
  17.             be.SelectedColor = Color.FromArgb(255, 255, 255, 255);
  18.             be.LostFocus += be_LostFocus;
  19.         }
复制代码
回复 使用道具 举报
hyx_2014
银牌会员   /  发表于:2014-4-9 10:13:00
18#
回复 17楼iceman的帖子

你好!谢谢你提供的帮助,也许你没明白我的真实需求,为此我录制了一段视频来阐释我的详细需求。
在视频中,当鼠标点击 CheckBox1 的 Text 属性时(编辑框获得焦点→编辑器初始化→编辑器显示出来),编辑器才显示出来。
同样, TextAlign、TabStop属性 也是当鼠标点击编辑框,它们对应的编辑器才显示出来。

希望能给出具体的解决办法,谢谢!

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-9 14:14:00
19#
回复 18楼hyx_2014的帖子

恩,视频简单明了,需求我已经了解。

当前 C1PropertyGrid 还没有提供该功能,我会把这个需求提交给产品组,有进一步反馈通知你。
回复 使用道具 举报
hyx_2014
银牌会员   /  发表于:2014-4-9 14:20:00
20#
回复 19楼iceman的帖子

好的,谢谢!
期待能尽快解决,完善我大C1控件的用户体验!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部