Devexpress DevXpress Xtragrid TileView

Devexpress DevXpress Xtragrid TileView,devexpress,xtragrid,Devexpress,Xtragrid,我正在使用Devexpress Xtragrid TileView模块 基本上,我希望我的代码是这样工作的: 用户在左上角的文本框中输入成员ID,然后按load 如果它们存在,则将显示一个平铺 互动程序应包含:名称、状态、成员ID和照片 如果用户再次按load(相同ID或其他ID),也将添加一个磁贴,依此类推。除非他们按下Clear&Load(清除并加载),否则应该只剩下1个最新的磁贴 因此,我能够生成步骤3。 但是我无法加载图片 图片本身不是字节数组。这是一个图像路径。 e、 q:D:/tes

我正在使用Devexpress Xtragrid TileView模块

基本上,我希望我的代码是这样工作的:

  • 用户在左上角的文本框中输入成员ID,然后按load
  • 如果它们存在,则将显示一个平铺
  • 互动程序应包含:名称、状态、成员ID和照片
  • 如果用户再次按load(相同ID或其他ID),也将添加一个磁贴,依此类推。除非他们按下Clear&Load(清除并加载),否则应该只剩下1个最新的磁贴
  • 因此,我能够生成步骤3。 但是我无法加载图片

    图片本身不是字节数组。这是一个图像路径。 e、 q:D:/test/1.jpg

    那么,如何加载图片

    Protected Overridable Sub InitData()
        Try
            Dim homesTable = ds.Tables(0)
            homesTable.Columns.Add("ImageCol")
    
            For Each row_Renamed As DataRow In homesTable.Rows
                Dim img As Image = Image.FromFile(row_Renamed("memberPhoto")) 'I tried this, but didn't work
                row_Renamed("ImageCol") = img
            Next row_Renamed
    
            GridControl1.DataSource = homesTable
        Catch
        End Try
    End Sub
    
    Private Sub setupTile()
        'For i = 0 To j - 1
        Try
            TileView1.BeginUpdate()
            'TileView1.DataSource = ds.Tables(0)
            TileView1.OptionsTiles.RowCount = 3
            TileView1.OptionsTiles.Padding = New Padding(20)
            TileView1.OptionsTiles.ItemPadding = New Padding(10)
            TileView1.OptionsTiles.IndentBetweenItems = 20
            TileView1.OptionsTiles.ItemSize = New Size(320, 170)
            TileView1.Appearance.ItemNormal.ForeColor = Color.White
            TileView1.Appearance.ItemNormal.BorderColor = Color.Transparent
            'Setup tiles template
            Dim leftPanel As New TileViewItemElement()
            Dim splitLine As New TileViewItemElement()
            Dim nameCaption As New TileViewItemElement()
            Dim nameValue As New TileViewItemElement()
            Dim statusCaption As New TileViewItemElement()
            Dim statusValue As New TileViewItemElement()
            Dim RGPCaption As New TileViewItemElement()
            Dim RGPvalue As New TileViewItemElement()
            Dim imageTile As New TileViewItemElement()
            TileView1.TileTemplate.Add(leftPanel)
            TileView1.TileTemplate.Add(splitLine)
            TileView1.TileTemplate.Add(nameCaption)
            TileView1.TileTemplate.Add(nameValue)
            TileView1.TileTemplate.Add(statusCaption)
            TileView1.TileTemplate.Add(statusValue)
            TileView1.TileTemplate.Add(RGPCaption)
            TileView1.TileTemplate.Add(RGPvalue)
            TileView1.TileTemplate.Add(imageTile)
            '
            'nameValue.Text = ""
            'statusValue.Text = ""
            'RGPvalue.Text = ""
            'imageTile.Image = Nothing
    
            '
            leftPanel.StretchVertical = True
            leftPanel.Width = 190
            leftPanel.TextLocation = New Point(-10, 0)
            leftPanel.Appearance.Normal.BackColor = Color.FromArgb(58, 166, 101)
            '
            splitLine.StretchVertical = True
            splitLine.Width = 3
            splitLine.TextAlignment = TileItemContentAlignment.Manual
            splitLine.TextLocation = New Point(190, 0)
            splitLine.Appearance.Normal.BackColor = Color.White
            '
            nameCaption.Text = "Name"
            nameCaption.TextAlignment = TileItemContentAlignment.TopLeft
            nameCaption.Appearance.Normal.FontSizeDelta = -1
            '
            nameValue.Column = TileView1.Columns("preferredName")
            nameValue.AnchorElement = nameCaption
            nameValue.AnchorIndent = 2
            nameValue.MaxWidth = 200
            nameValue.Appearance.Normal.FontStyleDelta = FontStyle.Bold
            'nameValue.Text = ds.Tables(0).Rows(i)("preferredName").ToString
            '
            statusCaption.Text = "Status"
            statusCaption.AnchorElement = nameValue
            statusCaption.AnchorIndent = 14
            statusCaption.Appearance.Normal.FontSizeDelta = -1
            '
            statusValue.Column = TileView1.Columns("memberStatus")
            statusValue.AnchorElement = statusCaption
            statusValue.AnchorIndent = 2
            statusValue.Appearance.Normal.FontStyleDelta = FontStyle.Bold
            'statusValue.Text = ds.Tables(0).Rows(i)("memberStatus").ToString
            '
            RGPCaption.Text = "RGP"
            RGPCaption.AnchorElement = nameValue
            RGPCaption.AnchorIndent = 65
            'RGPCaption.TextLocation
            'RGPCaption.Appearance.Normal.FontSizeDelta = -1
            RGPCaption.Appearance.Normal.Font = New Font("Segoe UI Semibold", 12.0F, System.Drawing.FontStyle.Regular)
            '
            RGPvalue.Column = TileView1.Columns("code")
            RGPvalue.AnchorElement = RGPCaption
            RGPvalue.AnchorIndent = 1
            RGPvalue.TextAlignment = TileItemContentAlignment.BottomLeft
            RGPvalue.Appearance.Normal.Font = New Font("Segoe UI Semilight", 25.75F, System.Drawing.FontStyle.Regular)
            'RGPvalue.Text = ds.Tables(0).Rows(i)("code").ToString
            '
            imageTile.Column = TileView1.Columns("ImageCol")
            imageTile.ImageSize = New Size(120, 170)
            imageTile.ImageAlignment = TileItemContentAlignment.MiddleRight
            imageTile.ImageScaleMode = TileItemImageScaleMode.Stretch
            imageTile.ImageLocation = New Point(12, 0)
    
        Catch ex As Exception
            XtraMessageBox.Show(ex.Message)
        Finally
            TileView1.EndUpdate()
        End Try
        'Next
    
    
    End Sub
    
    Private Sub loadBtn_Click(sender As Object, e As EventArgs) Handles loadBtn.Click
            initData()
            setupTile()
    End Sub
    

    可能太晚了,但在我的例子中,只需要从磁盘读取文件并分配给byte()列

    首先,表列应该是字节数组,所以替换为:

    homesTable.Columns.Add(“ImageCol”)

    用于:

    homesTable.Columns.Add(新数据列(“ImageCol”,GetType(字节)))

    然后我会尝试替换:

    row\u重命名(“ImageCol”)=img

    用于:

    row\u重命名(“ImageCol”)=IO.File.ReadAllBytes(row\u重命名(“memberPhoto”))

    这将把磁盘文件加载到字节数组中,并显示在平铺中。我会检查文件是否存在以避免异常

    这就是我从磁盘加载映像所做的

    希望能有帮助