【问题标题】:Loading First page in UI after scanning扫描后在 UI 中加载第一页
【发布时间】:2019-06-14 20:18:20
【问题描述】:

我想在 UI 中加载扫描的第一页(在附加的扫描仪中),但现在在此代码中,最后一页加载到 UI 中。任何人都可以分析代码并告诉我究竟要重组什么以显示第一页吗? enter image description here

 /// <summary>
    /// Loads the invoice in the UI, with its associated data.
    /// </summary>
    private void ShowImFromPDF()
    {
        IoC.Main.InvoiceCount = IoC.Main.Invoices.Count;

        GlobalVars.WriteLog("Updating image and data");
        if (IoC.Main.InvoiceIndex >= 0 && IoC.Main.InvoiceIndex < IoC.Main.Invoices.Count)
        {
            IoC.Main.LoadInfo = true;
            PdfDocument document = PdfReader.Open(IoC.Main.Invoices[IoC.Main.InvoiceIndex].Path);

            foreach (PdfPage page in document.Pages)
            {
                foreach (System.Drawing.Image image in page.GetImages())
                {
                    pictureBox1.Source = HelperMethods.ToBitMapImage(image);
                }
            }

【问题讨论】:

  • 它看起来像 foreach 循环覆盖所有图像,为什么看起来你得到最后一张图片,你应该使用类似 page.GetImages().FirstOrDefualt
  • @styx .FirstOrDefault 不会在 foreach 循环上运行。我收到这个错误。 Foreach 不能对“方法组”进行操作。您是否打算调用“方法组”?
  • 不,我的意思是删除 foreach 循环并改写 page.GetImages().FirstOrDefault()
  • 但这也可以返回我不想要的 null。
  • 你可以在foreach循环中得到null,如果你害怕null,你可以随时使用? opreator检查值是否不为null

标签: c# xml wpf visual-studio c#-4.0


【解决方案1】:

正如我在评论中所写 它看起来像 foreach 循环覆盖所有图像,为什么看起来你得到最后一张图片,你应该使用类似 page.GetImages().FirstOrDefault() 的东西 我的意思是你遍历 pdf 中的所有页面和页面中的所有图像,并将每个图像放在相同的 pictureBox

如何使用 FirstOrDefault:

这得到一个可以为空的整数列表,这意味着项目可以是整数或空

 public static void doStuff(List<int?> nullableList)
        {            

            var firstItem = nullableList.FirstOrDefault();
            if (firstItem != null)
                Console.WriteLine(firstItem);
            else
                Console.WriteLine("first item is null");
        }

发送示例

   List<int?> nullableList = new List<int?>() { 1, null, 2, 3, null };
   doStuff(nullableList);

    List<int?> nullableList1 = new List<int?>() { null, null, 2, 3, null };
    doStuff(nullableList1);

结果

1

“第一项为空”

取决于您的逻辑,您应该从 y 页面获取 x 图像

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2014-06-15
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2017-05-30
    相关资源
    最近更新 更多