用户
 找回密码
 立即注册
发表于 2019-6-24 16:12:55
本帖最后由 bigjimmy8257 于 2019-6-30 23:32 编辑

开发团队:

在下有几个小建议,请评估。

1.  this.Client.PlayAudio() 方法支持播放手机上的音频文件。 现在音频文件只能存放在服务器端,或者在资源打包的时候打包到APP中,但是PlayAudio的参数中支持Resource Mode = Client, 希望可以将这个实现,使得直接播放手机(或者叫客户端)上的文件。另外两个建议是 1. 是否可以将播放的文件改成播放列表,以便多个文件顺序播放. 2. 现在没有监测当前媒体文件是否播放结束的方式,是否可以添加该方法?

2.  UserControl 模板中增加KeyDown事件的处理。有个问题是当在form 中使用 this.ShowDialog(uc) 调出 UserControl 界面后,点击Back键会导致UC界面的退出,希望通过在UC中添加捕获KeyDown事件来进行处理。

3. 建议将输入控件统一添加enable 属性,现在是有的有,但有的没有,比如textbox就没有,这个有时候很有用。

4. 状态条控件(Progress)添加控件方向设置,现在只有水平方向,是否可以增加垂直方向的放置
关于设计器的改进建议:

1. 现在在VS中UI设计界只能是竖屏,建议添加一个功能,用用户可以选择是用竖屏还是横屏,这样会使得一些需要横屏设计的UI也会有即视效果。

2. 布局导航树中的各个控件间的相对位置无法调整,这个不是很方便。比如说我在一个panel中放了3的子控件 A1, A2, A3, Dock的设置都是TOP,顺序是A1, A2, A3,
如果此时我希望在A1的前面添加一个A0控件的话,我只能将A1-A3的控件Dock属性改为None,并且拖出panel,然后建立A0控件,Dock设为TOP,之后再逐一操作A1-A3,
非常的繁琐。特别是在设计的时候没有考虑周全的情况下,后续调整布局非常花时间。

如果可以通过在布局导航树中,对控件进行拖拽操作,使得指定控件可以灵活的调整其位置的话,将会给UI设计带来非常大的方便。





谢谢
大杰米

使用道具 举报 回复 支持 反对
本帖最后由 bigjimmy8257 于 2019-7-6 14:16 编辑

关于异步回调的执行,我从Oudi 处得到的回复知道,回调中的代码需要在 回调所在代码块中所有代码都执行完成后才能被执行。 我的理解如下:
// 代码块
{
     function( my_args, (obj, args)=> {  // 异步回调代码;});

     // 其他代码
     code_block1();
     code_block2();
}

如上代码,蓝色部分的回调代码必须等待 红色代码 执行完成后才会被执行。

我猜想如此设置的原因是为了不影响整个后续代码的运行,但有的操作(比如this.Client.GetClipboard )的执行速度是非常快的,此时用户
希望可以在 红色部分执行的时候就可以进行根据异步代码中设置的内容进行处理,或者我红色的部分可以放在子线程中进行,并在内部等待 异步回调代码的操作结果。比如:

{
    function(my, args, (obj, args) => { flag = true; })

   ThreadStart Thparm = new ThreadStart( Func2 );
   Thread Th1 = new Thread(Thparm);
   Th1.Start();
}


void Func2()
{
    while(!flag);
    // do something
    return;
}

希望能够提供额外的参数,比如说给上面的 function 添加参数,指明何时执行 回调代码 :

function(my, args, (obj, args) => { flag = true; } , [CallBackExecutionMethod = Post | Immediate] )

请评估。

大杰米

使用道具 举报 回复 支持 反对
发表于 2019-8-10 16:28:29
关于蓝牙控件,测试时发现,当接收的字节数组中有 0x0, 0x80-0xFF 的数值时,会导致蓝牙DataReceived事件接收发生异常:

- 将上述字节全部识别为0x0
- 多个上述连续数据被识别成一个0x0,  设置 e.Data.Length 为0
- 将受到的byte数组分成多次接收

例如:如果接收到的数据是 byte[8] { 0x1, 0x2, 0x0, 0xFF, 0x4, 0x98, 0x2, 0x3},
DataRecived事件会将该数据分成5个包:
   { 0x1, 0x2}
   { 0x0 }
   { 0x4 }
   { 0x0 }
   { 0x2, 0x3}

这个应该是个bug,希望能进行修改
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册