Tag: user interface

Windows 8 – 如何解除触摸键盘?

我正在用C#开发我的Windows 8应用程序,一个非常讨厌的事情是触摸键盘有时会停留在屏幕上,即使所有文本框都失去了焦点。 我阅读了文章键盘解雇逻辑白皮书 ,它解释了当从控制切换到控制时,即使控件可能不接受键盘输入,键盘也可以保持打开状态。 这将是我的情况,因为我的所有内容都托管在GridView或ListView中。 当用户点击屏幕上的任何项目时,点击将落在这些控件上。 这非常烦人,因为键盘占用了一半的屏幕,无法关闭键盘。 我试图将文本框设置为禁用,但它没有影响。 移除键盘的唯一方法是将焦点设置在按钮上,这非常黑客。 我认为我需要对“AutomationPeer”做一些事情,但我不清楚究竟要做什么。 有没有办法覆盖这种行为? 编辑:我想出来了。 目标是更改为白皮书中未列出的GridView和GridView项的控件类型。 这是我做的网格代码,允许我解雇键盘: public class KeyboardUnfocusableGridView : GridView { private class KeyboardUnfocusableGridViewAutomationPeer : GridViewAutomationPeer { public KeyboardUnfocusableGridViewAutomationPeer(GridView owner) : base(owner) { } protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Custom; } } private class KeyboardUnfocusableGridViewItemAutomationPeer : GridViewItemAutomationPeer { public KeyboardUnfocusableGridViewItemAutomationPeer(GridViewItem owner) : base(owner) { } […]

在Windows窗体上使用WPF更好吗?

对于一个全新的应用程序,使用WPF而不是Windows Forms更好吗? 我之前使用过Windows Forms但WPF并不多。 据我所知,WPF是Windows Forms的inheritance者,对吧? 该应用程序将托管具有大量自定义控件的DirectX Windows(不是WPF 3D,而是Managed DirectX和SlimDX )。 编辑:该应用程序是一个3D相关的应用程序,编辑器,如modo :

UI预制件在canvas下方实例化

我正在尝试复制塞尔达卫生系统。 代码看起来很好,工作正常。 但心脏容器放错了。 它们在canvas下面实例化。 这是重要的代码,心脏容器是正确的,只是处于错误的位置。 x和y的计算是正确的,但在canvas上却没有。 private Transform healthBar = GameObject.FindGameObjectWithTag(“HealthController”).transform; // container for the heartContainers private GameObject healthWrapperObject = Resources.Load(“HealthContainer”) as GameObject; // the backgroundImage and parent of the heart private List healthContainers = new List(); // list of hearts for later usages private int maxHealth = 6; private int currentHealth; private int healthPerHealthContainer […]

System.Windows.Forms.TextBox中未显示的Unicode字符

当我从VisualStudio调试器中剪切并粘贴它们时,这些字符显示正常,但是在调试器和我尝试显示此文本的TextBox中,它只显示正方形。 说明\ r \ n海流受季风影响,3-9月份其流向主要向北,流速为2节,有时达3节; 10月至次年4月份其流向南至东南方向,流速为2节。 r \ñ注意\ r \ n附近有火山爆发的危险,航行时严加注意\ r \ n 我认为TextBox支持Unicode文本。 知道如何在我的应用程序中显示此文本吗?

从DataGridView中的枚举创建下拉列表选项

我目前有一个类,我正在尝试创建一个简单的GUI来创建这个类的集合。 这个类的大多数属性都是字符串。 但是,我希望用户能够设置的属性之一是Enum。 因此,我希望用户界面具有此枚举的下拉列表,以限制用户输入无效的值。 目前,我正在获取对象的初始列表,将它们添加到DataTable并将DataGridView的DataSource设置为表。 很好地工作,甚至为一个布尔属性创建一个复选框列。 但是,我不知道如何将枚举列放入下拉列表中。 我正在使用C#和.NET 2.0。 此外,我已经尝试将DataGridView的DataSource分配给我的对象列表,但是当我这样做时,它对枚举没有帮助,我无法在DataGridView中创建新行,但我绝对不是绑定使用DataTable作为我的DataSource,它只是我半工作的选项。

使用屏幕大小缩放GUI.TextArea

我正在尝试扩展GUI.TextArea。 代码块在OnGui函数中工作。 但是当我改变屏幕尺寸时,textArea将不会处于正确的位置和大小。 第一屏尺寸 第二屏尺寸 是否有任何解决方案,如Canvas.ScaleMode.ScaleToFit或我应该重新创建GUI.TextArea? 编辑:我在canvas中使用按钮,一些图像和文本,并使用canvasScaler脚本轻松缩放它们。 但是文本对象不包含多行文本,因此我使用gui创建textarea以显示多行文本。