带有浮动工具箱 ItemRenderer 的 Flex 4 DataGrid
Flex 4 DataGrid with floating toolbox ItemRenderer
在我的项目中,我有一个包含一些信息的 DataGrid
组件,在最后一列中,我需要放置一个浮动工具箱。
这个想法是当用户点击图标的工具框时,它会出现在浮动工具框上方,就像一个菜单,其中包含一些图标以执行不同的操作。
至此,我已经解决了专栏的ItemRenderer
显示调度工具框图标,但是显示上浮动工具框的问题我还是没能解决。我试图制作一个自定义组件(它是一个 Canvas,它包含一个包含操作图标的 HBox)来保存工具箱的图标并通过菜单控件 (mx.control.Menu)
显示它,如下所示:
private function createAndShow():void {
var myCustomMenu:CustomContextMenu = new CustomContextMenu();
var myMenu:Menu = Menu.createMenu(this, myCustomMenu, false);
myMenu.show(btnToolBox.x + 10, btnToolBox.y + 10);
}
但是这种方法在页面的左侧和顶部显示了一个奇怪的容器,而不是在给定的点显示它,即 (btnToolBox.x + 10, btnToolBox.y + 10)
。
那么,有人可以帮我解决这个问题吗?
我正在互联网上搜索一些例子,但是我找不到任何可以帮助我完成这种情况的东西,所以,如果有人知道解决这个问题的方法或者至少可以以某种方式指出我,任何建议将不胜感激。
经过长时间的研究,我终于找到了答案。我创建了一个使用 PopUpAnchor 的自定义组件,解决方案如下所示
<s:PopUpAnchor id="hDropDown" x="{btnToolBox.x-options1.width+30}" y="{btnToolBox.y-6}" includeInLayout="false"
showEffect="{showEffects}" hideEffect="{hideEffects}">
<s:BorderContainer minHeight="0" id="options1" mouseDownOutside="{hDropDown.displayPopUp=false}"
cornerRadius="2" borderWeight="1" borderColor="gray" backgroundColor="black">
<s:layout>
<s:HorizontalLayout gap="5" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5" />
</s:layout>
</s:BorderContainer>
</s:PopUpAnchor>
在我的项目中,我有一个包含一些信息的 DataGrid
组件,在最后一列中,我需要放置一个浮动工具箱。
这个想法是当用户点击图标的工具框时,它会出现在浮动工具框上方,就像一个菜单,其中包含一些图标以执行不同的操作。
至此,我已经解决了专栏的ItemRenderer
显示调度工具框图标,但是显示上浮动工具框的问题我还是没能解决。我试图制作一个自定义组件(它是一个 Canvas,它包含一个包含操作图标的 HBox)来保存工具箱的图标并通过菜单控件 (mx.control.Menu)
显示它,如下所示:
private function createAndShow():void {
var myCustomMenu:CustomContextMenu = new CustomContextMenu();
var myMenu:Menu = Menu.createMenu(this, myCustomMenu, false);
myMenu.show(btnToolBox.x + 10, btnToolBox.y + 10);
}
但是这种方法在页面的左侧和顶部显示了一个奇怪的容器,而不是在给定的点显示它,即 (btnToolBox.x + 10, btnToolBox.y + 10)
。
那么,有人可以帮我解决这个问题吗?
我正在互联网上搜索一些例子,但是我找不到任何可以帮助我完成这种情况的东西,所以,如果有人知道解决这个问题的方法或者至少可以以某种方式指出我,任何建议将不胜感激。
经过长时间的研究,我终于找到了答案。我创建了一个使用 PopUpAnchor 的自定义组件,解决方案如下所示
<s:PopUpAnchor id="hDropDown" x="{btnToolBox.x-options1.width+30}" y="{btnToolBox.y-6}" includeInLayout="false"
showEffect="{showEffects}" hideEffect="{hideEffects}">
<s:BorderContainer minHeight="0" id="options1" mouseDownOutside="{hDropDown.displayPopUp=false}"
cornerRadius="2" borderWeight="1" borderColor="gray" backgroundColor="black">
<s:layout>
<s:HorizontalLayout gap="5" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5" />
</s:layout>
</s:BorderContainer>
</s:PopUpAnchor>