文本框似乎缺少编辑命令的绑定API
tmp00000 UID.995403
2016-12-15 发表
在WPF里面可以把TextBox的上下文菜单里面的功能绑定到其它地方,效果类似于Office的Ribbon菜单中的复制,粘贴,撤销,重做之类的操作。UWP算上预览版本已经公开差不多两年了,但是文本框在现在(14393)还是缺少这些功能。 咱们是不是应该一起反馈一波?
敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
tmp00000
UID.995403
2016-12-16 回复
Quotevbfool 发表于 2016-12-16 09:05
这个吧,SL的时候就没了,我倒是觉得自己写个扩展就可以了。
毕竟XAML系的扩展能力足够强。 ...
有些东西自己实现会比用命令绑定多出很多开销,比如撤销和重做。同一条历史记录会在内存里面放两份,而且得考虑复杂的同步问题。粘贴也是个问题,因为用代码模拟粘贴不会触发Paste事件,会与之前写的某些代码不兼容。
vbfool
UID.352791
2016-12-16 回复
Quote***链接停止解析***
有些东西自己实现会比用命令绑定多出很多开销,比如撤销和重做。同一条历史记录会在内存里面放两份,而且 ...
我的错,没仔细看,感情微软根本就没把方法放出来啊,不放出来怎么折腾也没招。
tmp00000
UID.995403
2016-12-16 回复
Quotevbfool 发表于 2016-12-16 16:49
我的错,没仔细看,感情微软根本就没把方法放出来啊,不放出来怎么折腾也没招。 ...
我现在只想出一个合理的方案,就是用WebView嵌套html页面。那里面的文本框可以用js模拟这些命令。
vbfool
UID.352791
2016-12-16 回复
Quote***链接停止解析***
我现在只想出一个合理的方案,就是用WebView嵌套html页面。那里面的文本框可以用js模拟这些命令。 ...
嗯,但是这招也很恶心就是了,因为WebView这东西,好像是浮在最上方的。希望不会遮住你的其它控件,最好的办法大概是整个页面都是WebView吧?
tmp00000
UID.995403
2016-12-16 使用
Lumia 1520 回复
Quotevbfool 发表于 2016-12-16 16:57
嗯,但是这招也很恶心就是了,因为WebView这东西,好像是浮在最上方的。希望不会遮住你的其它控件,最好 ...
我现在的设计是带有磨砂玻璃效果的 “悬浮窗口” 在文本框上。明天考完英语试一下WebView能遮挡成什么样。
tmp00000
UID.995403
2016-12-19 回复
本帖最后由 tmp00000 于 2016-12-19 19:55 编辑
Quotevbfool 发表于 2016-12-16 16:57 嗯,但是这招也很恶心就是了,因为WebView这东西,好像是浮在最上方的。希望不会遮住你的其它控件,最好 ...不是浮出控件。看图。 那个磨砂玻璃工具箱是个xaml控件。
***图片停止解析***
vbfool
UID.352791
2016-12-19 回复
Quote***链接停止解析***
不是浮出控件。看图。
那个磨砂玻璃工具箱是个xaml控件。
[qpic]94719ae0-8ea2-4cbc-bfc7-4f2a21ac372c.PNG[ ...
那还凑合啊,居然不是和WPF一样的浮出最上了。
tmp00000
UID.995403
2016-12-19 回复
Quotevbfool 发表于 2016-12-19 21:30 那还凑合啊,居然不是和WPF一样的浮出最上了。我之前没写过winjs与外面的代码交互,只写过简单的xaml项目内嵌winjs项目。当时我写这个用来试验vb14的字符串内插和字符串内换行。现在的问题是我不知道怎样用js接收xaml控件的指令。
tmp00000
UID.995403
2016-12-19 回复
Quotevbfool 发表于 2016-12-19 21:30
那还凑合啊,居然不是和WPF一样的浮出最上了。
我这几天试试ajax行不。要是可以,我就把SignalR移植一部分试试。
vbfool
UID.352791
2016-12-20 回复
Quote***链接停止解析***
我之前没写过winjs与外面的代码交互,只写过简单的xaml项目内嵌winjs项目。当时我写这个用来试验vb14的字符 ...
WebView有个ScriptNotify事件,可以让js通知到C#上,AddWebAllowedObject方法,可以注册一个C#的对象进页面全局,让js访问。
InvokeScript可以直接执行页面中的js。
通信方式还是有的。
tmp00000
UID.995403
2016-12-20 回复
Quotevbfool 发表于 2016-12-20 11:00 WebView有个ScriptNotify事件,可以让js通知到C#上,AddWebAllowedObject方法,可以注册一个C#的对象进页 ...这确实是个办法。我试了一下,html 的 textarea 自带的撤销操作并不好, 所以我还是要再研究一下textbox再决定到底怎么实现。不过它比XAML的textbox好的地方是它可以容纳内容较长的文本。XAML的textbox内容长度超过768kb就出现各种奇怪的bug(我之前发过帖子)。 html 的 textaera 尽管也很卡,但可以保证操作可以正常进行。
tmp00000
UID.995403
2016-12-20 回复
Quotevbfool 发表于 2016-12-20 11:00
WebView有个ScriptNotify事件,可以让js通知到C#上,AddWebAllowedObject方法,可以注册一个C#的对象进页 ...
我刚才把你提到的交互方式看了一下,确实不用 Ajax 也可以正常与浏览器里面的内容通信。花点心思就可以写出类似于 asp.net mvc 的东西。不过这个跟开发网站不一样,不需要过多地在前端保存状态。这样的话似乎按照 web form 的方式写框架用起来更方便。前端是可以像 mvc 一样动态生成的网页,背后的代码是类似于 web form 的页面类,用来减少 js 的代码量, 控制器还是 mvc 的控制器,视图模型还是自己写,模型还是让 Entity Framework 处理。
tmp00000
UID.995403
2016-12-20 回复
本帖最后由 tmp00000 于 2016-12-20 13:39 编辑
Quotevbfool 发表于 2016-12-20 11:00 WebView有个ScriptNotify事件,可以让js通知到C#上,AddWebAllowedObject方法,可以注册一个C#的对象进页 ...前端我打算这样写。c#不能直接在字符串里面敲回车,所以这个办法是vb专属的。 ***图片停止解析*** 更正:这个办法同时适用于c#和vb。在c#中给字符串前加@可以使用与vb近似的转义规则,而且与$不会冲突。
tmp00000
UID.995403
2016-12-20 回复
Quotevbfool 发表于 2016-12-20 11:00
WebView有个ScriptNotify事件,可以让js通知到C#上,AddWebAllowedObject方法,可以注册一个C#的对象进页 ...
我发现个问题。公开给前端的 windows 运行时 对象不会自动产生 *.d.ts 文件。这样写js的时候容易犯错误。
vbfool
UID.352791
2016-12-20 回复
Quote***链接停止解析***
前端我打算这样写。c#不能直接在字符串里面敲回车,所以这个办法是vb专属的。
[qpic]d853be79-315c-4d2e- ...
可以的,在字符串引号前边加@就可以了
类似于
@"Text
Box"
tmp00000
UID.995403
2016-12-20 使用
Lumia 1520 回复
Quotevbfool 发表于 2016-12-20 12:17
可以的,在字符串引号前边加@就可以了
类似于
那字符串内插怎么用?加了***链接停止解析*** 就会导致字符串内所有转义无效。
vbfool
UID.352791
2016-12-20 回复
Quote***链接停止解析***
那字符串内插怎么用?加了@ 就会导致字符串内所有转义无效。
如果是格式字符串倒是可以写$@"";这样。但是其它转义,估计还真的不好说了
vbfool
UID.352791
2016-12-20 回复
这样写似乎没问题
[mw_shl_code=csharp,true]string s1 = $@"
a1\a""bcdefgh""
";[/mw_shl_code]
tmp00000
UID.995403
2016-12-20 回复
Quotevbfool 发表于 2016-12-20 13:20
这样写似乎没问题
[mw_shl_code=csharp,true]string s1 = $@“
a1\a““bcdefgh““
非常感谢。我确实孤陋寡闻了。我之前一直以为@和$不能一起用。
***图片停止解析***
vbfool
UID.352791
2016-12-21 回复
本帖最后由 vbfool 于 2016-12-21 14:29 编辑
@tmp00000
告诉你一个事情,我们好像错怪微软了,RichEditBox里剪切复制粘贴命令都是有的。
本身不在控件上,而是在Document里。
[mw_shl_code=csharp,true]Rtf1.Document.Selection.Cut();[/mw_shl_code]
这样
tmp00000
UID.995403
2016-12-21 回复
Quotevbfool 发表于 2016-12-21 13:59
@tmp00000
告诉你一个事情,我们好像错怪微软了,RichEditBox里剪切复制粘贴命令都是有的。
本身不在控件 ...
我回头有时间就看看。我们期末考坑爹的webform,我得把老师上课讲的东西做成代码示例发给同学,用来换取其它科目的复习资料。