草庐IT

.net - 适用于 .NET (WPF) 的 iOS 控件

coder 2023-07-26 原文

我目前正在编写一个 WPF 应用程序,供平板设备通过 Citrix 使用(不是我的选择,也不灵活...)。在可能的情况下,我想让用户界面对平板电脑友好。我想知道是否有任何类似于 iOS 或 Android 设备所采用的控件可用于 WPF。显然免费更好,但不是必需的。

我应该补充一点,我对组合框替换控件和其他控件特别感兴趣,这些控件可以使用户在此外形规范上更轻松地进行交互...

最佳答案

据我所知,微软似乎正在研究它...下一个版本的 Windows:' Windows 8 ' 将专为触摸界面设计,所以我猜测当他们着手发布 SDK 时,所有控件都将准备好触摸。不幸的是,windows 8 sdk 可能至少要 4 个月才会发布,所以这可能不是您的最佳解决方案。在我们等待它出来的同时,这里有一些解决方法......

Microsoft 直到最近才意识到它在触摸世界中需要认真追赶。触摸和使用鼠标之间的主要区别在于触摸使用手势,例如扫动手指滚动,捏合缩放等。已经有一波支持滚动功能的Windows 7平板电脑,但我只能告诉你第二个手。我想象创建一个带有大量项目的普通 WPF ScrollViewer 并在其中一个平板电脑上运行它会响应这些手势。不过,我快速浏览了笔记本电脑上的控制面板,但找不到任何与手势有关的设置。 :(

触摸的另一个重要方面是按钮必须更大。这可以很容易地通过增加所有按钮的大小来完成,但是增加 slider 、组合框等的大小需要使用 WPF 样式。这些都有相当详细的记录,基本上允许您自定义控件的外观并为其提供一些简单的行为(单击时它们的外观等等)。在您的情况下,样式可用于使所有 slider 控件看起来又大又粗,并且组合框包含大量手指大小的项目以供手指使用。 Expression blend 具有一组非常容易编辑的简单样式,我建议您使用它们来制作您的平板电脑样式控件。另外,如果上一段中提到的手势最终成为徒劳的追逐。制作一个继承 ScrollViewer 的自定义控件可能是值得的,它包含一些代码,使滚动查看器具有速度,但我可以想象这很快就会变成一个挑战......:(

最后,文本输入对于应用程序来说是必不可少的。 Windows 带有屏幕键盘和手写识别器,我建议您尝试使用它,而不是尝试实现您自己的。

希望对您有所帮助。总的来说,如果你能承受得起等待 Windows 8 的时间。否则尝试使用 Windows 7 可用的有限范围的功能。我相信如果你需要一些额外的东西,某个地方会有第三方控件库兴...

关于.net - 适用于 .NET (WPF) 的 iOS 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364334/

有关.net - 适用于 .NET (WPF) 的 iOS 控件的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  4. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  7. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  8. ruby - inverse_of 是否适用于 has_many? - 2

    当我使用has_one时,它​​工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290

  9. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  10. .net - .NET 将如何影响 Python 和 Ruby 应用程序? - 2

    我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth

随机推荐