”已打开的“文本窗口希望用C#更改背景颜色及文字大小

功能建议 · 983 次浏览
winsion 创建于 2023-05-15 00:17

这是想找熟悉:反射_操作文本窗口 子程序(https://getquicker.net/SubProgram?id=c3b95f75-ec1a-4083-314f-08d946ae43e3)的朋友指导怎么增加修改背景/文本字体大小的C#语句,这个地方挺急的,希望得到帮忙

在设置文本这里:

Application.Current.Dispatcher.Invoke(() =>
{
    var win = {window} as TextWindow;
    win.SetText({Text});
});

我觉得可以用例如 win.background(#CCCCCCC),这类方法去修改的,但是测试了一个晚上都试不出来。请问怎么读取win 这个东东里面的方法?

另外:在讨论区,我找不到资料,例如

  1. 编写这类C#,需要用什么样的工具(如:IDE),才能方便调用各种方法。
  2. 相关循序渐进的案例教程。怎么去逐步学习这方面知识呢?
  3. 子程序调试实在挺麻烦,我保存子程序后才可以在主程序这里测试。有没有便捷的技巧? 

希望有高人指路。谢谢

 


回复内容
CL 2023-05-15 08:05
#1

这个是一个比较困难的任务。

需要了解:

  • - C#
  • - WPF
  • - C#中的反射机制
  • - 使用反编译工具查看quicker程序集中的类型
  • - 在子程序中通过反射调用更新对象属性。

连我也写不出来这些代码,所以建议放弃了。 预先设置好窗口属性,或者通过再次打开来更新设置。

winsion 2023-05-16 00:26
#2

没想到这个地方,,竟然这么难!

幸好有人弄了 “反射_操作文本窗口 子程序”, 不然我连这个想象空间也没了。

H-D-G 2023-05-16 20:39
#3

字体大小可以实现,另一个我试试吧

H-D-G 回复 H-D-G 2023-05-16 20:53 :

字体大小:

Application.Current.Dispatcher.Invoke(() =>
{
var win = {window} as TextWindow;
dynamic editor = typeof(TextWindow).GetField("TheText", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(win);
editor.FontSize = 10;
});

H-D-G 最后更新于 2023-05-16 21:33
H-D-G 回复 H-D-G 2023-05-16 20:56 :


大小变量是图片里选中的那个

H-D-G 最后更新于 2023-05-16 21:32
H-D-G 回复 H-D-G 2023-05-16 21:30 :

窗口颜色:
Application.Current.Dispatcher.
Invoke(() =>
{
var win = {window} as TextWindow;
win.SetBackgroundColor("#00000000");
});

H-D-G 最后更新于 2023-05-16 21:33
winsion 2023-05-18 23:08
#4

--------- 已测试成功!!!

哇!!!本来打算放弃这个思路,没想到HDG高人瞬间解决!!  为什么你们这么强大的。

我想了解类似这些,我用Quicker的编辑器,貌似查不到对应的方法。很头疼。

是不是用什么IDE来做的? 再次非常感谢HDG !!

zryan 回复 winsion 2023-05-18 23:44 :

就像崔大说的那样,想要搞定这些,建议先系统的学习一门面向对象编程语言,可以网上找相关教程。

IDE是编程的工具,要写出正确的代码最终还是得靠对语言的掌握。

winsion 回复 zryan 2023-05-22 23:31 :

曾啃C# , C++ , 初步玩过Python Netbean +  Arduino IDE,目前主力反而在VBA中,底气只有一点点而已。希望在Quicker这里深入一下C。,,Quicker太强大了。 

回复主贴