找回密码
 立即注册

QQ登录

只需一步,快速开始

gxlary

注册会员

3

主题

11

帖子

32

积分

注册会员

积分
32

活字格认证

最新发帖
gxlary
注册会员   /  发表于:2015-5-28 16:39  /   查看:9728  /  回复:12
下图这个请问怎么实现

我不想封装控件有别的办法吗

本帖子中包含更多资源

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

x

12 个回复

倒序浏览
KNight
中级会员   /  发表于:2015-5-28 17:40:00
沙发
回复 1楼gxlary的帖子
  1. <c1:C1MenuItem Header="割增追加">
  2.     <c1:C1MenuItem KeyDown="C1MenuItem_KeyDown">
  3.         <c1:C1MenuItem.Header>
  4.             <HeaderedContentControl>
  5.                 <Grid>
  6.                     <Grid.ColumnDefinitions>
  7.                         <ColumnDefinition />
  8.                         <ColumnDefinition />
  9.                     </Grid.ColumnDefinitions>
  10.                     <TextBox Height="23" Width="100" Text="100" Grid.Column="0" KeyDown="TextBox_KeyDown" />
  11.                     <TextBlock Text="%" Grid.Column="1" />
  12.                 </Grid>
  13.             </HeaderedContentControl>
  14.         </c1:C1MenuItem.Header>
  15.     </c1:C1MenuItem>
  16. </c1:C1MenuItem>
复制代码
不过有一个问题是,得重写TextBox的KeyDown事件,不然如法输入内容

评分

参与人数 1金币 +500 收起 理由
Alice + 500 提供代码解决问题,奖励500金币

查看全部评分

回复 使用道具 举报
gxlary
注册会员   /  发表于:2015-5-28 18:12:00
板凳
十分感谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-28 18:27:00
地板
回复 3楼gxlary的帖子

感谢对该问题的反馈。
你可以通过2楼的方法实现你的需求。
如果有差别,我们再来讨论。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
gxlary
注册会员   /  发表于:2015-6-2 17:35:00
5#
回复 4楼Alice的帖子

你好啊
我还想在追问一个问题
我想实在点击子菜单的同时
如何不关闭整个菜单,
还让菜单表示
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-6-2 18:11:00
6#
回复 5楼gxlary的帖子

是要在点击子菜单时,整个菜单目录不自动关闭是吧?你可以在C1MenuItem中实现PreviewMouseRightButtonUp 事件,并在事件中设置 e.Handle=true; 即可;这样既可以自动关闭菜单,而且不影响子菜单里面自定义控件的鼠标事件,不过这样会出现一个问题,子菜单的离开焦点触发会有问题,你试试看,我这边会出现在菜单外边随便点击,菜单也不会自动关闭,造成卡死现象,除非windows切换一下其他窗口,或者程序弹窗什么的之后,就正常了,暂时没找到原因;如果子菜单中没有自定义控件用到鼠标事件,可以用 PreviewMouseRightButtonDown 事件进行设置,这样离开焦点就不会有问题了,不过子菜单中自定义的控件的鼠标事件就失效了;仅供参考
回复 使用道具 举报
gxlary
注册会员   /  发表于:2015-6-2 18:37:00
7#
回复 6楼KNight的帖子

你好
我这是2011j for silverlight(日文版的)
好像没有你说的这个事件啊
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-3 13:54:00
8#
回复 7楼gxlary的帖子

你好。
根据你的描述,你使用的是日文版的silverlight。
Silverlight没有PreviewMouseRightButtonUp等相关事件。
你可以尝试找到这个MenuItem并且展示设置IsOpen=true。
  1. var g=VisualTreeHelper.GetChild(mi, 0) as Grid;  //mi is a C1MenuItem
  2.          var p=g.FindName(&quot;SubItemsPopup&quot;) as Popup;
  3.          p.IsOpen = true;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-6-3 14:21:00
9#
回复 7楼gxlary的帖子

:-| 抱歉理解错了,一直以为是WPF,我试了一下,如果是Silverlight里的C1MenuItem,你可以在最底层的C1MenuItem的Click事件里加上他上一层C1MenuItem的一个属性,就是设置miDeep4.IsSubmenuOpen = true; 即可在单击后不会自动关闭菜单栏;
  1. <C1:C1MenuItem Header="Deep4" x:Name="miDeep4">
  2. <C1:C1MenuItem Header="Deep5" Click="C1MenuItem_Click">
  3. </C1:C1MenuItem>
  4. </C1:C1MenuItem>
复制代码
  1. private void C1MenuItem_Click(object sender, C1.Silverlight.SourcedEventArgs e)
  2.                 {
  3.                         C1MenuItem menu = sender as C1MenuItem;
  4.                         if (menu.Header.ToString().Equals("Deep5"))
  5.                         {
  6.                                 miDeep4.IsSubmenuOpen = true;
  7.                         }
  8.                 }
复制代码

评分

参与人数 1金币 +200 满意度 +5 收起 理由
Alice + 200 + 5 非常感谢

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-3 17:34:00
10#
回复 9楼KNight的帖子

谢谢反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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