在官方的Microsoft文档中,只有一个段落提到了控件对键盘的行为(至少我能找到的):
http://msdn.microsoft.com/en-us/library/cc189015(v=VS.95).aspx#inputting_text
文本输入和控件
某些控件通过自己的处理对键盘事件做出反应.例如,TextBox是一个控件,用于捕获然后直观地表示使用键盘输入的文本,它在自己的逻辑中使用KeyUp和KeyDown来捕获击键,然后在文本中引发自己的TextChanged事件.实际上改了.您仍然可以将KeyUp和KeyDown的处理程序添加到TextBox或任何旨在处理文本输入的相关控件.但是,作为其预期设计的一部分,控件可能不会响应通过键事件定向到它的所有键值.行为特定于每个控件.例如,ButtonBase(Button的基类)处理KeyUp,以便它可以检查SPACEBAR或ENTER键,为了引发Click事件,它认为相当于鼠标左键按下.事件的处理是通过ButtonBase覆盖虚拟方法OnKeyUp来完成的,并且在其实现中它设置Handled = true.结果是,在空格键的情况下,监听键事件的按钮的任何父节点都不会为其自己的处理程序接收已处理的事件.另一个例子是TextBox.诸如ARROW键之类的某些键不被TextBox视为文本,而是被视为特定于控件UI行为,而TextBox将这些事件案例标记为已处理.结果是,在空格键的情况下,监听键事件的按钮的任何父节点都不会为其自己的处理程序接收已处理的事件.另一个例子是TextBox.诸如ARROW键之类的某些键不被TextBox视为文本,而是被视为特定于控件UI行为,而TextBox将这些事件案例标记为已处理.结果是,在空格键的情况下,监听键事件的按钮的任何父节点都不会为其自己的处理程序接收已处理的事件.另一个例子是TextBox.诸如ARROW键之类的某些键不被TextBox视为文本,而是被视为特定于控件UI行为,而TextBox将这些事件案例标记为已处理.
自定义控件可以通过重写OnKeyDown/OnKeyUp为键事件实现自己类似的覆盖行为.如果您的自定义控件处理特定的加速键,或者具有与TextBox描述的场景类似的控件或焦点行为,则应将此逻辑放在您自己的OnKeyDown/OnKeyUp覆盖中.
在任何地方都有更完整的参考吗?
例如,在AutoCompleteBox中,您可以导航到按向上/向下的建议,并选择按下输入等等.
当然必须有一个更好的方法,而不是集中每一个控件并按下键盘上的每一个键来找出:)
我试图找出一种使用角度js进行展开和折叠的方法.如果不操纵控制器中的dom对象(这不是角度方式),我无法找到一种优雅的方法.目前我有一个很好的方法来进行一层扩展和折叠.然而,当我开始嵌套时,事情变得复杂并且不能按照我想要的方式工作(当它们不应该扩展和折叠多个区域时).我不知道如何通过ng-click发送唯一标识符来扩展/折叠正确的内容.我应该提到这些项目都在ng-repeat中,所以我必须自定义发送的参数.
我能够使用这个jsfiddle来帮助我进行一层扩展和折叠工作.然而,这是一种切换方式,我希望用户能够在扩展其他内容时保持扩展.所以我要做的就是使用一个数组,每次点击某个东西时,点击的项目的索引就会被添加到数组中并且类会被展开.当用户再次单击时,索引已从阵列中删除,并且该区域已折叠.
我发现你能做到的另一种方法是使用指令.但我真的找不到任何一个例子来包围指令如何工作.在编写指令时,我不确定如何开始.
我目前的设置如下:
function Dexspander($scope) {
$scope.ExpandArray = [];
//Push or pop necessary elements for tracking
$scope.DespopulatArray = function (identifier, element) {
if (_.indexOf($scope.ExpandArray, identifier + element) != -1) {
$scope.ExpandArray.splice(_.indexOf($scope.ExpandArray, identifier + element), 1);
} else {
$scope.ExpandArray.push(identifier + element);
}
}
//Change class of necessary elements
$scope.Dexspand = function (identifier, element) {
if (_.indexOf($scope.ExpandArray, identifier + element) != -1) {
return "expand";
} else {
return "collapse";
}
}
}
<div class="user-header" ng-repeat="user in users"> …
Run Code Online (Sandbox Code Playgroud) 我的gem文件看起来像:
group :development, :test do
gem 'rspec-rails'
gem 'annotate-models', '1.0.4'
end
Run Code Online (Sandbox Code Playgroud)
我跑' bundle install
'并安装了annotate-models捆绑包.
如果我输入:annotate
我得到一个命令未找到错误.
如果我输入:bundle show annotate
我得到一个'找不到当前包中的gem annotate.
如果我输入bundle show annotate-models,它说它安装在:
/Library/Ruby/Gems/1.8/gems/annotate-models-1.0.4
Run Code Online (Sandbox Code Playgroud)
打字:
annotate-models
Run Code Online (Sandbox Code Playgroud)
也不起作用.
我正在关注railstutorial.org,并在此时陷入困境.
我需要更改控件的状态然后执行一些操作.具体来说,我想在隐藏控件之前运行动画.我想做那样的事情:
VisualStateManager.GoToState(control, "Hidden", true); // wait until the transition animation is finished
ParentControl.Children.Remove(control);
Run Code Online (Sandbox Code Playgroud)
问题是过渡动画是异步运行的,因此在动画启动后立即从可视树中删除控件.
那我该如何等待动画完成呢?
我真的刚刚开始认真使用Angular.js,我注意到的第一件事是,如果找不到某些东西,它通常不会抛出错误.
在一个简单的例子中,如果something_undefined
未定义:
<p>{{something_undefined}}</p>
Run Code Online (Sandbox Code Playgroud)
这将无声地失败:
<p></p>
Run Code Online (Sandbox Code Playgroud)
在具有一个例子$resource
,如果我犯了一个错字像{{member.frist_name}}
我倒是挺喜欢角度来告诉我,有没有这样的属性frist_name
上member
.
如何在silverlight中创建这样的按钮.我需要表达式混合吗?
由于我需要在我的应用程序的许多地方使用修改过的按钮,我应该作为用户控件吗?
我正在尝试创建一个 AIR 应用程序来记录应用程序的使用情况,使用 AIR 从系统获取信息的唯一简单方法是使用命令行工具和抓取stdout。
我知道OS X 的top和ps等工具,但它们似乎都没有告诉我哪个应用程序/窗口处于活动状态,也许我什至不应该寻找进程?出于日志记录目的,我想首先获取当前活动窗口(和应用程序)的名称和标题。
我主要对 OS X 感兴趣,但将来也有 Windows 和 Linux 等价物会很棒。
如果尚不存在这样的工具,那么获得一些如何制作它们的指示会很棒。我还没有做过任何操作系统级别的编程,但我认为创建一个命令行工具应该是更容易做的事情之一(完全忽略 GUI 框架)。
即使在beta文档中也无法找到任何ActionScript本机API,我认为这意味着测量CPU /内存消耗的唯一方法是通过编写自定义本机解决方案,将其与AIR连接并使其在每个上工作目标平台?
基本上,目标是能够在AIR中提供此信息,而不必使用外部应用程序进行性能分析,甚至不能使用Flex/Flash构建器.
感谢有用的答案,System.totalMemory悄悄地躲过了我!
似乎CPU负载唯一的解决方案是使用NativeProcess进行一些命令行抓取.
在Flex的Flex应用程序中存储用户首选项的标准方法是什么?我需要存储简单的参数,如最近打开的文件列表,窗口位置和大小等.
我已将效果应用于此模板的边框.然后效果会应用到其中的每个元素,因此我得到的阴影比我照顾的要多.有没有办法禁用这种效果?你可以看到我在里面添加了一个模糊效果,但后来我最终得到了模糊的阴影:)
DataTemplate x:Key="TestInstanceViewModelTemplate">
<Border BorderThickness="1" BorderBrush="#FF0909B4">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
<DockPanel>
<DockPanel.Effect>
<BlurEffect/>
</DockPanel.Effect>
<Grid DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="50" Width="1*" />
<ColumnDefinition MinWidth="50" Width="1*"/>
</Grid.ColumnDefinitions>
<Button Command="{Binding Path=StartCommand}" Content="Start" Grid.Column="0" Grid.Row="0" />
<Button Command="{Binding Path=StopCommand}" Content="Stop" Grid.Column="1" Grid.Row="0"/>
</Grid>
<WpfTestingClient:StatusControl DockPanel.Dock="Top" HorizontalAlignment="Stretch"></WpfTestingClient:StatusControl>
</DockPanel>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud) silverlight ×3
air ×2
angularjs ×2
javascript ×2
wpf ×2
xaml ×2
actionscript ×1
apache-flex ×1
behavior ×1
c# ×1
collapse ×1
command-line ×1
default ×1
dropshadow ×1
expand ×1
gem ×1
graphics ×1
keyboard ×1
macos ×1
profiling ×1
ruby ×1
rubygems ×1
window ×1