Tag: 焦点

必须在WPF中的Calendar中单击两次

编辑2:谢谢大家的反馈。 我通过将其添加到我的SelectedDatesChanged事件来解决了这个问题: Mouse.Capture(null); 当我在日历中选择日期时,我想点击“开始”按钮。 但是,我需要点击两次“开始”按钮:一次取消对焦日历,再次实际按下它。 如果在其中选择了一个项目,则鼠标离开事件不会在日历上触发,并且Keyboard.ClearFocus()也不会对其进行去焦点。 请问,每当我选择约会时,如何摆脱日历的焦点? 谢谢! 编辑:接下来单击“开始”按钮仅仅是一个例子; 如果我想选择一个文本框而我刚刚选择了一个日期,我还需要点击两次才能进入文本框。 主要问题是,一旦日历与之交互,必须在与任何其他元素交互之前单击一次。

在Silverlight中检测控件的焦点

有没有办法判断控件(特别是System.Windows.Controls.TextBox)是否集中在Silverlight中? 我正在寻找类似以下内容(您将在常规.Net应用程序中看到的内容): textBox.Focused 从控件中省略这似乎是一件简单而微不足道的事情,但我无法在任何地方找到答案。 更新 结合Rob的答案,稍微优雅的解决方案是创建一个类似的扩展方法: public static bool IsFocused( this Control control ) { return FocusManager.GetFocusedElement() == control; }

C#ComboBox GotFocus

我有一个使用WPF的C# ComboBox 。 我有激活ComboBox的GotFocus时执行的代码。 问题是每次从ComboBox进行选择时都会执行GotFocus事件。 例如,当您第一次单击ComboBox然后进行选择时,即使您没有单击任何其他控件,也会执行GotFocus 。 如果在列表中进行选择,或者事件处理程序中是否有标志或其他内容可用于确定是否由于用户选择而触发了GotFocus事件处理程序,是否可以阻止此事件触发列表中的项目?

Keyboard.Focus在WPF中的文本框上不起作用

我正在敲打看起来像是一个简单的问题来修复wpf,但我还没有发现为什么我不能让我的应用程序按照我的计划行事。 当用户按下ctrl + f时,我的wpf应用程序中会弹出一个小搜索框。 我想要的只是插入符号在搜索框文本框内闪烁,准备好接受任何用户输入而无需用户点击它。 以下是文本框的xaml代码,该代码可见,启用,命中可测试,tabstopable和focusable。 在后面的代码中,我在搜索框的可见性受到影响时调用此方法。 搜索框在应用程序的开头加载。 /// /// Handles events triggered from focusing on this view. /// /// The sender. /// The key event args. private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) { if (!((bool) dependencyPropertyChangedEventArgs.NewValue)) { return; } SearchCriteriaTextBox.Focus(); Keyboard.Focus(SearchCriteriaTextBox); SearchCriteriaTextBox.Select(0, 0); if (SearchCriteriaTextBox.Text.Length > 0) { SearchCriteriaTextBox.SelectAll(); } } 问题是,代码被调用,组件变为IsFocused = true但没有获得键盘焦点。 […]

如何从标签控件中删除虚线焦点矩形?

我正在尝试从我的自定义Tab Control删除虚线焦点矩形。 我已经尝试了一切,我无法删除那个矩形。 正如您在图片中看到的那样,焦点矩形在我的应用程序设计中令人不安。 请帮忙!

关注表单加载问题

我有一个ActiveX控件(用VB 6.0或C ++编写),我们在C#WinForms程序中用作AxInterop。 它非常像一个文本框,但有一些特殊的逻辑等……我们已将它添加到工具栏中。 当表单加载时我希望键盘焦点位于此控件内部,因此我使用了.Focus和.Select方法,但仍然无法获得焦点。 当我从Visual Studio运行时,控件获得焦点。 当我在IDE外部运行时,控件无法获得焦点。 为什么是这样? 这是它的屏幕截图:

键盘焦点到DataGrid

我有一个WPF DataGrid,并希望将焦点设置为第一个项目,以便用户可以在第一次打开对话框时使用项目列表中的键盘进行导航。 使用datagrid.Focus(); 我可以将焦点设置为DataGrid,但这显然不是键盘焦点,因为当我按下箭头键时,我无法在DataGrid中导航。 焦点跳转到文本框“描述”,但这不是我想要的(见图片)。 如何以正确的方式将焦点和键盘焦点设置为DataGrid? 谢谢您帮忙。

如何从C#中的控制台窗口回放焦点?

我有一个C#控制台应用程序(A)打开黑色Windows控制台。 有时在启动时它会从另一个需要关注的程序(B)中窃取焦点。 问题:如何从A.exe到B.exe重点关注? A -> Focus -> B 细节: 程序B不是我的,我无能为力。 它有一个GUI,多个窗口,其中一个需要焦点(它可能是一个模态对话窗口)。 程序A不需要任何关注,也不会以任何方式与程序B交互。 程序A通过启动快捷方式启动,基本上在后台运行(它已发布但仍在开发中,这就是控制台窗口的原因) 我有几分钟/几分钟的时间来检查并重点关注。

文本框在选项卡上选择所有,但不是鼠标单击

所以假设我有一个带有几个文本框的WPF表单,如果你选中文本框并且它已经包含了一些内容,我想选择该框中的所有文本,这样输入就会删除该文本。 如果您在框中单击鼠标,则可能意味着您想要在某处更改字母,因此在这种情况下不要突出显示所有字母。 看起来很容易,但到目前为止,我找不到一个好的解决方案。 到目前为止,我的工作非常接近工作,但并不完美。 private void EventSetter_OnHandler(object sender, RoutedEventArgs e) { TextBox txt = sender as TextBox; if (txt != null) txt.SelectAll(); } 因此,当盒子获得键盘焦点时,它会选择全部,因此对文本框的选项卡可以完美地选择所有文本。 但是,如果鼠标单击此方法也会被调用,这也会突出显示文本,但是单击然后将光标放在鼠标单击之后。 所以在function上它是完美的,但它仍然困扰我,当鼠标点击时它闪烁选择一切。 有没有更好的方法,或者在我的活动中进行某种检查,以便知道我通过鼠标点击而不是标签获得了键盘焦点?

我可以在TabControl上的标签上删除虚线焦点矩形吗?

我有一个标签控件,需要删除所选标签周围的虚线焦点矩形。 我已将TabControl的TabStop属性设置为false。 但是,如果单击选项卡并按Tab键,则会在tabname周围显示虚线矩形。 我尝试创建自己的TabControl并尝试了这个 class MyTabControl : TabControl { public MyTabControl() { TabStop = false; DrawMode = TabDrawMode.OwnerDrawFixed; DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem); Invalidate(); } } 但是,仍然会出现虚线矩形。 我也尝试重写MyTabControl.OnPaint()方法,但它没有帮助。 有没有办法实现这个目标?