Focusable

【WPF学习】第十六章 键盘输入

五迷三道 提交于 2020-04-22 01:27:51
  当用户按下键盘上的一个键时,就会发生一系列事件。下表根据他们的发生顺序列出了这些事件: 表 所有元素的键盘事件(按顺序)   键盘处理永远不会像上面看到的这么简单。一些控件可能会挂起这些事件中的某些事件,从而可执行自己更特殊的键盘处理。最明显的例子是TextBox控件,它挂起了TextInput事件。对于一些按键,TextBox控件还挂起了KeyDown事件,如方向键。对于此类情形,通常仍可使用隧道路由事件(PreviewTextInput和PreviewKeyDown事件).   TextBox控件还添加了名为TextChanged的新事件。在按键导致文本框中的文本发生改变之后立即引发该事件。这时,在文本框中已经可以看到新的文本,所以阻止不需要的按键已为时太晚。 一、处理按键事件   理解键盘事件的最好方式是使用简单的示例程序,如下图所示。该例在一个文本框中监视所有可能的键盘事件,并在发生时给出报告。下图显示了文本框中输入大写A键时结果。   上面示例的完整代码如下所示: < Window x:Class ="KeyEvents.MainWindow" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx

【WPF学习】第十六章 键盘输入

大憨熊 提交于 2020-04-21 13:37:57
  当用户按下键盘上的一个键时,就会发生一系列事件。下表根据他们的发生顺序列出了这些事件: 表 所有元素的键盘事件(按顺序)   键盘处理永远不会像上面看到的这么简单。一些控件可能会挂起这些事件中的某些事件,从而可执行自己更特殊的键盘处理。最明显的例子是TextBox控件,它挂起了TextInput事件。对于一些按键,TextBox控件还挂起了KeyDown事件,如方向键。对于此类情形,通常仍可使用隧道路由事件(PreviewTextInput和PreviewKeyDown事件).   TextBox控件还添加了名为TextChanged的新事件。在按键导致文本框中的文本发生改变之后立即引发该事件。这时,在文本框中已经可以看到新的文本,所以阻止不需要的按键已为时太晚。 一、处理按键事件   理解键盘事件的最好方式是使用简单的示例程序,如下图所示。该例在一个文本框中监视所有可能的键盘事件,并在发生时给出报告。下图显示了文本框中输入大写A键时结果。   上面示例的完整代码如下所示: < Window x:Class ="KeyEvents.MainWindow" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx

【WPF学习】第六十二章 构建更复杂的模板

穿精又带淫゛_ 提交于 2020-04-08 23:48:56
  在控件模板和为其提供支持的代码之间又一个隐含约定。如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要。   在简单控件中,这个过程比较容易,因为对模板几乎没有(或完全没有)什么真正的需求。对于复杂控件,问题就显得有些微妙了,因为控件的外观和实现不可能完全相互独立的。对于这种情况,控件需要对其可视化显示做出一些假设,而不管曾经被设计的多好。   在前面已经看到了控件模板的这种需求的两个例子,占位元素(如ContentPresenter和ItemsPresenter)和模板绑定。接下来的将例举另外两个例子:具有特定名称(以PART_开头)的元素和专门设计的用于控件模板的元素(如ScrollBar控件中的Track元素)。为成功地创建控件模板,需要仔细查看相关控件的标准模板,并注意分析这4种技术的用法,然后将他们复制到自己的模板中。 一、嵌套的模板   按钮控件的模板可分解成几个较简单的部分。然而,许多模板并非如此简单。在某些情况下,控件模板将包含每个自定义模板也需要的大量元素。而在有些情况下,改变控件的外观涉及创建多个模板。   例如,假设计划修改熟悉的ListBox控件。创建这个示例的第一步是为ListBox控件设计模板,并酌情添加自动应用模板的样式。下面的标记将这两个要素合并到一起: < Style TargetType =" {x

【WPF学习】第六十二章 构建更复杂的模板

柔情痞子 提交于 2020-04-08 21:42:44
  在控件模板和为其提供支持的代码之间又一个隐含约定。如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要。   在简单控件中,这个过程比较容易,因为对模板几乎没有(或完全没有)什么真正的需求。对于复杂控件,问题就显得有些微妙了,因为控件的外观和实现不可能完全相互独立的。对于这种情况,控件需要对其可视化显示做出一些假设,而不管曾经被设计的多好。   在前面已经看到了控件模板的这种需求的两个例子,占位元素(如ContentPresenter和ItemsPresenter)和模板绑定。接下来的将例举另外两个例子:具有特定名称(以PART_开头)的元素和专门设计的用于控件模板的元素(如ScrollBar控件中的Track元素)。为成功地创建控件模板,需要仔细查看相关控件的标准模板,并注意分析这4种技术的用法,然后将他们复制到自己的模板中。 一、嵌套的模板   按钮控件的模板可分解成几个较简单的部分。然而,许多模板并非如此简单。在某些情况下,控件模板将包含每个自定义模板也需要的大量元素。而在有些情况下,改变控件的外观涉及创建多个模板。   例如,假设计划修改熟悉的ListBox控件。创建这个示例的第一步是为ListBox控件设计模板,并酌情添加自动应用模板的样式。下面的标记将这两个要素合并到一起: < Style TargetType =" {x

【WPF学习】第六十二章 构建更复杂的模板

天涯浪子 提交于 2020-04-08 14:59:11
原文: 【WPF学习】第六十二章 构建更复杂的模板   在控件模板和为其提供支持的代码之间又一个隐含约定。如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要。   在简单控件中,这个过程比较容易,因为对模板几乎没有(或完全没有)什么真正的需求。对于复杂控件,问题就显得有些微妙了,因为控件的外观和实现不可能完全相互独立的。对于这种情况,控件需要对其可视化显示做出一些假设,而不管曾经被设计的多好。   在前面已经看到了控件模板的这种需求的两个例子,占位元素(如ContentPresenter和ItemsPresenter)和模板绑定。接下来的将例举另外两个例子:具有特定名称(以PART_开头)的元素和专门设计的用于控件模板的元素(如ScrollBar控件中的Track元素)。为成功地创建控件模板,需要仔细查看相关控件的标准模板,并注意分析这4种技术的用法,然后将他们复制到自己的模板中。 一、嵌套的模板   按钮控件的模板可分解成几个较简单的部分。然而,许多模板并非如此简单。在某些情况下,控件模板将包含每个自定义模板也需要的大量元素。而在有些情况下,改变控件的外观涉及创建多个模板。   例如,假设计划修改熟悉的ListBox控件。创建这个示例的第一步是为ListBox控件设计模板,并酌情添加自动应用模板的样式。下面的标记将这两个要素合并到一起: <

Android ListView onItemClickListener being blocked by ProgressBar

故事扮演 提交于 2020-01-16 17:29:48
问题 I had my onItemClickListener working for my ListView inside of my DrawerLayout working fine. But I added a ProgressBar that is displayed before anything else then it is set to View.GONE. However, I can't select and items from my list view any more. list_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

Android ListView onItemClickListener being blocked by ProgressBar

天涯浪子 提交于 2020-01-16 17:29:10
问题 I had my onItemClickListener working for my ListView inside of my DrawerLayout working fine. But I added a ProgressBar that is displayed before anything else then it is set to View.GONE. However, I can't select and items from my list view any more. list_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

Focusable WinRT UserControl with image background

你。 提交于 2019-12-25 06:36:50
问题 I'm having difficulty developing a WinRT control that can display an image as well as be focusable and receive keyboard input. The first part - displaying an image in a UserControl - is straightforward; using a child Rectangle whose background is an ImageBrush works fine. However, calling UserControl.Focus(FocusState.Programmatic) (or any other focus state) does not work - it returns false and focus is not set to the user control. Incidentally, this UserControl is currently being tested

Making a single component full screen

随声附和 提交于 2019-12-19 11:28:04
问题 I'm trying to make a JPanel go full screen when you click a button, and back again when you press escape. I've managed to get the window to go full screen, but because of the whole thing about adding components removing them from other containers, I end up with a blank JPanel. I chose to make a separate JFrame to render full screen, the class of which is as follows (note that this is an inner class, so myPanel refers to a panel that already exists in MyJFrame): public class FullScreen extends

Focusable EditText in the ListView and onItemClick

微笑、不失礼 提交于 2019-12-18 12:18:57
问题 In each ListView item I have EditText . When I set android:focusable="false" for EditText then onItemClick on the ListView item is working, but EditText doesn't get cursor when I click inside. If I'll set android:focusable="true" for EditText , then EditText is focusable, but onItemClick for the ListView doesn't work when I click on it. How to separate onItemClick and focusable EditText in this item? 回答1: Thanks @user370305 for the idea with OnTouchListener. Now it is working for me by using