这是我的问题。我在 mx:DataGrid 列中有一个 mx:Image。如果我没有专门设置图像的宽度和高度,当图像加载到网格中时,只会显示图像的一部分。
娱乐步骤:
- 创建新的 Flex 项目(桌面)
- 将项目配置为使用 Halo 主题。
在各自的位置添加以下代码 *注意:确保分配了 windowedApplication 的creationComplete事件。还可能需要对任何导入语句等进行一些调整。抱歉。*
这是我遇到的问题的一个简单示例。启动程序时,您将看到图像的一部分。当您单击重新绑定时,将出现完整的图像。
我试图让完整的图像显示在第一个绑定上,而不是第二个而不是在 MXML 中设置尺寸。在没有发生某种用户交互的情况下,我无法通过 ActionScript 成功显示完整图像。
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
BindData();
}
private function BindData():void
{
var objOrderItem:Object = new Object();
var items:ArrayCollection = new ArrayCollection(new Array(objOrderItem));
dgMain.dataProvider = new ArrayCollection(items.source);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:VBox width="100%">
<mx:Button label="Rebind" click="BindData()" />
<mx:DataGrid id="dgMain" resizableColumns="false" draggableColumns="false"
sortableColumns="false" rowCount="1">
<mx:columns>
<mx:DataGridColumn headerText="Thumb" sortable="false" width="60">
<mx:itemRenderer>
<fx:Component>
<mx:HBox horizontalGap="0" verticalScrollPolicy="off" horizontalScrollPolicy="off" width="100%">
<mx:Image source="https://encrypted-tbn1.google.com/images?q=tbn:ANd9GcTTuc9n_oweh-dv4LUljzh0Lxzn1AvZchODUoSAeGePaDwPqUuw"
width="60" maintainAspectRatio="true" />
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:Label text="Text After Grid" />
</mx:VBox>
提前致谢!