ContextMenu在Flex的 spark Panel、TiltleWindow中不显示

本文介绍了Flex4中解决面板菜单显示问题的方法。通过在面板控件中设置mouseEnabled属性并进行二次确认,确保菜单正常显示。此外还提供了自定义皮肤及设置mouseEnabled属性的替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过自己研究测试,发现按如下方式也可以实现pannel中菜单显示问题:
   1 在pannel控件中设置属性mouseEnabled="true",如下:
      <s:Panel id="procArea"   mouseEnabled="true">
 
    2  在creationComplete call方法中再设置一次mouseEnabled = true
         procArea.skin.mouseEnabled = true;
 
    注意:目前还没仔细分析为什么要设置两次。但上述有步一步都不能少,否则设置无效。

 

 

 

下面是在网上看到的其它解决方式:

 

 

原文:http://www.cnblogs.com/SuperPig/archive/2010/08/31/1813792.html

 

Flex4的一个Bug

详见:

https://bugs.adobe.com/jira/browse/SDK-26182

https://bugs.adobe.com/jira/browse/SDK-25598

solution:

1) set mouseEnabled=true - in Panel 、TiltleWindow

< s:TitleWindow  mouseEnabled ="true"   />

< s:Panel  mouseEnabled ="true"   />

 

2) set custom skin for Panel - copy-paste from spark.skins.spark.PanelSkin 、TiltleWindow
3) set mouseEnabled="true" for created custom skin

override  protected  function initializationComplete(): void
  {
   
this .mouseEnabled = true ;
   useChromeColor 
=   true ;
   
super .initializationComplete();
  }
在WPF(Windows Presentation Foundation)中,要在DataGrid中添加上下文菜单(ContextMenu),你需要在XAML中设置`ContextMenu`属性,并关联到数据网格的一项或一组列。以下是基本步骤: 1. **首先,创建一个自定义的数据模板**:如果DataGrid中的每个单元格需要同的上下文菜单,可以为每一项创建一个自定义的数据模板。在`.xaml.cs`文件里,你可以为`DataTemplate`注册一个资源。 ```xml <DataTemplate x:Key="RowTemplate"> <TextBlock Text="{Binding YourProperty}" ContextMenu="{StaticResource MyContextMenu}"/> </DataTemplate> ``` 在这里,`YourProperty`替换为你的实际属性名。 2. **定义ContextMenu**: ```xml <ContextMenu x:Key="MyContextMenu"> <MenuItem Header="Cut" Command="{Binding CutCommand}"/> <MenuItem Header="Copy" Command="{Binding CopyCommand}"/> <!-- 添加其他你想在上下文菜单中的命令 --> </ContextMenu> ``` 3. **在DataGrid上应用模板和ContextMenu**: ```xml <DataGrid ItemsSource="{Binding YourItemsSource}" ItemTemplate="{StaticResource RowTemplate}"> <!-- 如果所有行共享相同的上下文菜单,需指定ItemTemplate --> ContextMenu="{StaticResource MyContextMenu}" </DataGrid> ``` 4. **确保Commands已经绑定到视图模型**: 在`.xaml.cs`文件中,你需要将`CutCommand`和`CopyCommand`绑定到你的ViewModel或者依赖于ViewModel的命令实例。 ```csharp public ICommand CutCommand { get; set; } public ICommand CopyCommand { get; set; } public ViewModel() { CutCommand = new RelayCommand(CutAction); CopyCommand = new RelayCommand(CopyAction); } private void CutAction() { // ... 执行剪切操作 } private void CopyAction() { // ... 执行复制操作 } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值