首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Devexpress Xtragrid TileView

Devexpress Xtragrid TileView
EN

Stack Overflow用户
提问于 2016-08-31 06:21:38
回答 1查看 671关注 0票数 2

我正在使用Devexpress Xtragrid TileView模块。

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

  1. 在左上角文本框上输入用户成员ID,然后按load。
  2. 如果它们存在,那么就会出现一个瓷砖。
  3. 瓷砖应该包含:名称、状态、成员ID和照片。
  4. 如果用户再次按load (相同的ID或另一个ID),也会添加Tile,依此类推。除非他们按下清除和加载,它应该只剩下一个最新的瓷砖。

所以,我可以制作到第三步,但我不能加载图片。

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

那么,我该如何加载图片呢?

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

发布于 2017-02-15 20:21:21

也许为时已晚,但在我的例子中,只需要从磁盘读取文件并将其分配给字节()列。

首先,表列应该是字节数组,因此替换:

homesTable.Columns.Add("ImageCol")

适用于:

homesTable.Columns.Add(New DataColumn("ImageCol", GetType(Byte)))

然后我试着替换:

row_Renamed("ImageCol") = img

适用于:

row_Renamed("ImageCol") = IO.File.ReadAllBytes(row_Renamed("memberPhoto"))

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

这就是我从磁盘加载映像的方法。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39242119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档