c# 从右到左打印

2023-12-06

我正在处理一些阿拉伯语数据,我想从右到左打印它

我试过这个

StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);
                e.Graphics.DrawString(dataToPrint, valueFont, System.Drawing.Brushes.Black, 20, 20, format);

但这使得文本仍然从左侧开始,并且它使得worse所以现在我看不到全部文字像这样:

enter image description here

但是当我删除format, 我懂了:

enter image description here

我需要与第二张图像完全相同,但从右到左。

有什么帮助吗?

更新1 这就是我填写的方式dataToPrint object

 System.Drawing.Font valueFont = new System.Drawing.Font("Arial", 15, System.Drawing.FontStyle.Regular);
                string dataToPrint = "";
                dataToPrint += "رقم بطاقة التسويق = " + farmID.Text + Environment.NewLine;
                dataToPrint += "إسم صاخب المزرعة = " + farmOwner.Text + Environment.NewLine;
                dataToPrint += "رقم المزرعة = " + farmNumber.Text + Environment.NewLine;
                dataToPrint += "الموبايل = " + farmMobile.Text + Environment.NewLine;
                dataToPrint += "الإمارة = " + emaraNameArabic.Text + Environment.NewLine;
                dataToPrint += "المنطقة = " + areaNameArabic.Text + Environment.NewLine;
                dataToPrint += "الإقليم = " + regionNameArabic.Text + Environment.NewLine;
                dataToPrint += "مركز الإستلام = " + receivingCenterName.Text + Environment.NewLine;
                dataToPrint += "خلاص = " + khalas.Text + Environment.NewLine;
                dataToPrint += "فرض = " + fardh.Text + Environment.NewLine;
                dataToPrint += "لولو = " + otherLulu.Text + Environment.NewLine;
                dataToPrint += " خنيزي= " + khedrawi.Text + Environment.NewLine;
                dataToPrint += "بومعان = " + boumaan.Text + Environment.NewLine;
                dataToPrint += "برحي = " + barhi.Text + Environment.NewLine;
                dataToPrint += "جش خزمة = " + jeshKharma.Text + Environment.NewLine;
                dataToPrint += "رزيز = " + reziz.Text + Environment.NewLine;
                dataToPrint += "جبري = " + jabri.Text + Environment.NewLine;
                dataToPrint += "عنبرة المدينة = " + anbaretAlMadina.Text + Environment.NewLine;
                dataToPrint += " شيشي= " + shishi.Text + Environment.NewLine;
                dataToPrint += "دباس = " + dabbas.Text + Environment.NewLine;
                dataToPrint += "نبتة سيف = " + nabtetSaif.Text + Environment.NewLine;
                dataToPrint += "خضراوي = " + khedrawi.Text + Environment.NewLine;
                dataToPrint += "هلالي = " + hilali.Text + Environment.NewLine;
                dataToPrint += "مكتومي = " + maktoumy.Text + Environment.NewLine;
                dataToPrint += "نميشي = " + namishi.Text + Environment.NewLine;

更新2

After @Reyhaneh SH回答 我把20改为400,这就是结果,仍然不是从右到左

enter image description here


您的两个代码都是正确的,但问题是您使用了 20 像素作为 X 位置。 X 指定从左上角开始的位置。尝试一下:

 e.Graphics.DrawString(dataToPrint, valueFont, 
        System.Drawing.Brushes.Black, 200, 20, format);

您还可以使用任何其他大于 20 像素的合适数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# 从右到左打印 的相关文章

  • 如何从当前 .NET 表单/应用程序发送密钥 F12

    我非常确定以下按钮激活的表单代码应该在我的 C 应用程序中引发 Control F12 SendKeys F12 但它似乎并没有继续进入 Windows shell 并激活另一个正在侦听它的程序 我的键盘可以用 看起来发送键在某处被拦截 并
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • 有没有比这更快的方法来查找目录和所有子目录中的所有文件?

    我正在编写一个程序 需要在目录及其所有子目录中搜索具有特定扩展名的文件 这将在本地驱动器和网络驱动器上使用 因此性能是一个问题 这是我现在使用的递归方法 private void GetFileList string fileSearchP
  • C++ 在 Vector 中使用不可分配的对象

    我想将对象列表存储在std vector 但对象包含引用且无法分配给 但是 我可以复制构造该对象 我能想到的唯一选择是使用指针来包装对象并在需要分配指针时重新设置指针 但这样做的语法会显着降低可读性 特别是在使用迭代器时 我更喜欢另一种选择
  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • C# ToString("MM/dd/yy") 删除前导 0 [重复]

    这个问题在这里已经有答案了 可能的重复 格式化 NET DateTime Day 不带前导零 https stackoverflow com questions 988353 format net datetime day with no
  • 通过 MSBuild 调用 cl.exe 时无限期挂起

    我正在尝试在我的 主要是 C 项目上运行 MSBuild 想象一下一个非常庞大的代码库 Visual Studio 2015 是有问题的工具集 Windows 7 SP1 和 VS 2015 更新 2 即使使用 m 1 从而迫使它仅使用一个
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 多个同名内存数据库

    关系到这个答案 https stackoverflow com a 48446491 596758 我试图通过设置让多个上下文工作UseInMemoryDatabase以同名 下面的测试失败 第二个上下文为空 我还需要做什么才能在内存数据库
  • 如何使复选框不可选择?

    我想知道你是怎么做的CheckBox在c 中无法选择 我认为这会是类似 SetSelectable false 之类的东西 但我似乎看不到该方法 I found CanSelect但这似乎是只读属性 您可以设置自动检查 http msdn
  • 如何仅更改 DateTime 的日期部分,同时保留时间部分?

    我在代码中使用了很多 DateTime 我想将这些日期时间更改为我的特定日期并保留 时间 1 2012 02 02 06 00 00 gt 2015 12 12 06 00 00 2 2013 02 02 12 00 00 gt 2015
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐