有没有办法使用WPFTrigger将Focus从一个控件设置到另一个控件?像下面的例子:有没有办法让这个EventTrigger将焦点放在文本框“txtName”上?我正在尝试找到使用严格的MVVM来执行此类操作的方法。如果这是不应该通过XAML(在MVVM中)完成的事情,那也没关系。但我希望看到某种文档,说明它如何适合在XAML之外执行的MVVM模式。 最佳答案 您是否考虑过使用附加行为。它们易于实现和使用AttachedProperty。虽然它仍然需要代码,但这段代码被抽象到一个类中并被重用。它们可以消除“代码隐藏”的需要,并且
我有几个按钮,我修改了它们的外观。我将它们设置为带有背景和自定义边框的平面按钮,因此它们看起来很漂亮,不再像普通按钮(实际上,它们现在看起来像Office2003按钮;-)。这些按钮有一个像素的边框。然而,当按钮被选中时(通过单击或键盘操作(如按tab键)获得焦点)按钮突然在其周围出现相同颜色的额外边框,因此使其成为两个像素的边框。此外,当我禁用一像素边框时,按钮不会在焦点上获得一像素边框。在网上,这个问题的问法很像“如何禁用按钮上的焦点”,但这不是我想要的:焦点应该仍然存在,只是不显示现在的方式。有什么建议吗?:-) 最佳答案
我有几个按钮,我修改了它们的外观。我将它们设置为带有背景和自定义边框的平面按钮,因此它们看起来很漂亮,不再像普通按钮(实际上,它们现在看起来像Office2003按钮;-)。这些按钮有一个像素的边框。然而,当按钮被选中时(通过单击或键盘操作(如按tab键)获得焦点)按钮突然在其周围出现相同颜色的额外边框,因此使其成为两个像素的边框。此外,当我禁用一像素边框时,按钮不会在焦点上获得一像素边框。在网上,这个问题的问法很像“如何禁用按钮上的焦点”,但这不是我想要的:焦点应该仍然存在,只是不显示现在的方式。有什么建议吗?:-) 最佳答案
在Windows窗体应用程序中,何时编写代码以在应用程序启动时和随后调用函数后将焦点设置到控件?例如,如果我有一个DropDownList、一个TextBox和四个按钮,并且我希望将Focus设置到DropDownList,我应该在哪里编写代码?要在应用程序启动时将焦点设置到特定控件,我可以将选项卡索引设置为该DropDown(具有最小值,假设TabStop属性设置为True)。现在,如果用户完成一个操作(比如,任何点击按钮事件),然后我更新DropDown,之后如果我想设置焦点......我可以这样做MyDropDownList.Focus()问题注意:问题更多是关于哪里,而不是如何
在Windows窗体应用程序中,何时编写代码以在应用程序启动时和随后调用函数后将焦点设置到控件?例如,如果我有一个DropDownList、一个TextBox和四个按钮,并且我希望将Focus设置到DropDownList,我应该在哪里编写代码?要在应用程序启动时将焦点设置到特定控件,我可以将选项卡索引设置为该DropDown(具有最小值,假设TabStop属性设置为True)。现在,如果用户完成一个操作(比如,任何点击按钮事件),然后我更新DropDown,之后如果我想设置焦点......我可以这样做MyDropDownList.Focus()问题注意:问题更多是关于哪里,而不是如何
我正在编写一个自定义TextBox,它在获得焦点后会更改其边框样式。由于添加边框会导致控件与相邻的控件重叠,我暂时将文本框置于对话框的前面(使用textBox.BringToFront())。但是,一旦编辑完成并且焦点丢失,我想将控件发送回其在Z顺序中的原始位置。这可能吗(最好以简单的方式!) 最佳答案 调用GetChildIndex和SetChildIndex父级Controls集合的方法。 关于c#-如何使用WinForms设置控件的Z顺序,我们在StackOverflow上找到一个
我正在编写一个自定义TextBox,它在获得焦点后会更改其边框样式。由于添加边框会导致控件与相邻的控件重叠,我暂时将文本框置于对话框的前面(使用textBox.BringToFront())。但是,一旦编辑完成并且焦点丢失,我想将控件发送回其在Z顺序中的原始位置。这可能吗(最好以简单的方式!) 最佳答案 调用GetChildIndex和SetChildIndex父级Controls集合的方法。 关于c#-如何使用WinForms设置控件的Z顺序,我们在StackOverflow上找到一个
我想知道为什么这段代码无法聚焦文本框...?privatevoidsendEmail_btn_Click(objectsender,EventArgse){StringsendTo=recipientEmail_tbx.Text.Trim();if(!IsValidEmailAddress(sendTo)){MessageBox.Show("PleaseEntervalidEmailaddress","Cognex"MessageBoxButtons.OK,MessageBoxIcon.Error);recipientEmail_tbx.Focus();}}
我想知道为什么这段代码无法聚焦文本框...?privatevoidsendEmail_btn_Click(objectsender,EventArgse){StringsendTo=recipientEmail_tbx.Text.Trim();if(!IsValidEmailAddress(sendTo)){MessageBox.Show("PleaseEntervalidEmailaddress","Cognex"MessageBoxButtons.OK,MessageBoxIcon.Error);recipientEmail_tbx.Focus();}}
我有一个View,它有一个TextBox和下面的几个Button。当窗口加载时,我希望TextBox具有焦点。如果我不使用MVVM,我会在Loaded事件中调用TextBox.Focus()。但是,我的ViewModel不知道我的View,所以我如何在不将代码放入我的View代码隐藏的情况下完成此操作?编辑:阅读答案后,我决定将这段代码放在Viewxaml中如果这不是初始页面焦点,我可能会推荐JonGalloway的答案,因为它可以从ViewModel控制。 最佳答案 如果它让您感觉更好(它让我感觉更好),您可以使用附加属性在Xam